
<!DOCTYPE HTML>
<html lang="" >
    <head>
        <meta charset="UTF-8">
        <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
        <title>Part1 · GitBook</title>
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="description" content="">
        <meta name="generator" content="GitBook 3.2.3">
        
        
        
    
    <link rel="stylesheet" href="../gitbook/style.css">

    
            
                
                <link rel="stylesheet" href="../gitbook/gitbook-plugin-highlight/website.css">
                
            
                
                <link rel="stylesheet" href="../gitbook/gitbook-plugin-search/search.css">
                
            
                
                <link rel="stylesheet" href="../gitbook/gitbook-plugin-fontsettings/website.css">
                
            
        

    

    
        
    
        
    
        
    
        
    
        
    
        
    

        
    
    
    <meta name="HandheldFriendly" content="true"/>
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <link rel="apple-touch-icon-precomposed" sizes="152x152" href="../gitbook/images/apple-touch-icon-precomposed-152.png">
    <link rel="shortcut icon" href="../gitbook/images/favicon.ico" type="image/x-icon">

    
    <link rel="next" href="../part2/" />
    
    
    <link rel="prev" href="../" />
    

    </head>
    <body>
        
<div class="book">
    <div class="book-summary">
        
            
<div id="book-search-input" role="search">
    <input type="text" placeholder="Type to search" />
</div>

            
                <nav role="navigation">
                


<ul class="summary">
    
    

    

    
        
        
    
        <li class="chapter " data-level="1.1" data-path="../">
            
                <a href="../">
            
                    
                    Introduction
            
                </a>
            

            
        </li>
    

    
        
        <li class="divider"></li>
        
        
    
        <li class="chapter active" data-level="2.1" data-path="./">
            
                <a href="./">
            
                    
                    Part1
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.2" data-path="../part2/">
            
                <a href="../part2/">
            
                    
                    Part2
            
                </a>
            

            
        </li>
    

    

    <li class="divider"></li>

    <li>
        <a href="https://www.gitbook.com" target="blank" class="gitbook-link">
            Published with GitBook
        </a>
    </li>
</ul>


                </nav>
            
        
    </div>

    <div class="book-body">
        
            <div class="body-inner">
                
                    

<div class="book-header" role="navigation">
    

    <!-- Title -->
    <h1>
        <i class="fa fa-circle-o-notch fa-spin"></i>
        <a href=".." >Part1</a>
    </h1>
</div>




                    <div class="page-wrapper" tabindex="-1" role="main">
                        <div class="page-inner">
                            
<div id="book-search-results">
    <div class="search-noresults">
    
                                <section class="normal markdown-section">
                                
                                <p><img src="D:\Typora\java&#x6838;&#x5FC3;\jvm\assets\20180808112156511.png" alt="img"></p>
<h2 id="1-java-&#x5185;&#x5B58;&#x533A;&#x57DF;&#x4E0E;&#x5185;&#x5B58;&#x6EA2;&#x51FA;&#x5F02;&#x5E38;">1. Java &#x5185;&#x5B58;&#x533A;&#x57DF;&#x4E0E;&#x5185;&#x5B58;&#x6EA2;&#x51FA;&#x5F02;&#x5E38;</h2>
<h3 id="11-&#x8FD0;&#x884C;&#x65F6;&#x6570;&#x636E;&#x533A;&#x57DF;">1.1 &#x8FD0;&#x884C;&#x65F6;&#x6570;&#x636E;&#x533A;&#x57DF;</h3>
<blockquote>
<p>&#x6839;&#x636E;&#x300A;Java &#x865A;&#x62DF;&#x673A;&#x89C4;&#x8303;(Java SE 7 &#x7248;)&#x300B;&#x89C4;&#x5B9A;&#xFF0C;Java &#x865A;&#x62DF;&#x673A;&#x6240;&#x7BA1;&#x7406;&#x7684;&#x5185;&#x5B58;&#x5982;&#x4E0B;&#x56FE;&#x6240;&#x793A;&#x3002;</p>
</blockquote>
<p><img src="D:\Typora\java&#x6838;&#x5FC3;\jvm\assets\aHR0cHM6Ly91c2VyLWdvbGQtY2RuLnhpdHUuaW8vMjAxNy85LzQvZGQzYjE1YjNkODgyNmZhZWFlMjA2Mzk3NmZiOTkyMTM_aW1hZ2VWaWV3Mi8wL3cvMTI4MC9oLzk2MC9mb3JtYXQvd2VicC9pZ25vcmUtZXJyb3IvMQ-1595949481531.jfif" alt="img"></p>
<p>1.1.1 &#x7A0B;&#x5E8F;&#x8BA1;&#x6570;&#x5668;</p>
<blockquote>
<h4 id="21&#xFF09;&#x4EC0;&#x4E48;&#x662F;&#x7A0B;&#x5E8F;&#x8BA1;&#x6570;&#x5668;">2.1&#xFF09;&#x4EC0;&#x4E48;&#x662F;&#x7A0B;&#x5E8F;&#x8BA1;&#x6570;&#x5668;</h4>
<p>&#x3000;&#x3000;&#x7A0B;&#x5E8F;&#x8BA1;&#x6570;&#x5668;&#x662F;&#x4E00;&#x4E2A;&#x8BB0;&#x5F55;&#x7740;&#x5F53;&#x524D;&#x7EBF;&#x7A0B;&#x6240;&#x6267;&#x884C;&#x7684;&#x5B57;&#x8282;&#x7801;&#x7684;&#x884C;&#x53F7;&#x6307;&#x793A;&#x5668;&#x3002;</p>
<p>&#x3000;&#x3000;JAVA&#x4EE3;&#x7801;&#x7F16;&#x8BD1;&#x540E;&#x7684;&#x5B57;&#x8282;&#x7801;&#x5728;&#x672A;&#x7ECF;&#x8FC7;JIT&#xFF08;&#x5B9E;&#x65F6;&#x7F16;&#x8BD1;&#x5668;&#xFF09;&#x7F16;&#x8BD1;&#x524D;&#xFF0C;&#x5176;&#x6267;&#x884C;&#x65B9;&#x5F0F;&#x662F;&#x901A;&#x8FC7;&#x201C;&#x5B57;&#x8282;&#x7801;&#x89E3;&#x91CA;&#x5668;&#x201D;&#x8FDB;&#x884C;&#x89E3;&#x91CA;&#x6267;&#x884C;&#x3002;&#x7B80;&#x5355;&#x7684;&#x5DE5;&#x4F5C;&#x539F;&#x7406;&#x4E3A;&#x89E3;&#x91CA;&#x5668;&#x8BFB;&#x53D6;&#x88C5;&#x8F7D;&#x5165;&#x5185;&#x5B58;&#x7684;&#x5B57;&#x8282;&#x7801;&#xFF0C;&#x6309;&#x7167;&#x987A;&#x5E8F;&#x8BFB;&#x53D6;&#x5B57;&#x8282;&#x7801;&#x6307;&#x4EE4;&#x3002;&#x8BFB;&#x53D6;&#x4E00;&#x4E2A;&#x6307;&#x4EE4;&#x540E;&#xFF0C;&#x5C06;&#x8BE5;&#x6307;&#x4EE4;&#x201C;&#x7FFB;&#x8BD1;&#x201D;&#x6210;&#x56FA;&#x5B9A;&#x7684;&#x64CD;&#x4F5C;&#xFF0C;&#x5E76;&#x6839;&#x636E;&#x8FD9;&#x4E9B;&#x64CD;&#x4F5C;&#x8FDB;&#x884C;&#x5206;&#x652F;&#x3001;&#x5FAA;&#x73AF;&#x3001;&#x8DF3;&#x8F6C;&#x7B49;&#x6D41;&#x7A0B;&#x3002;</p>
<p>&#x3000;&#x3000;&#x4ECE;&#x4E0A;&#x9762;&#x7684;&#x63CF;&#x8FF0;&#x4E2D;&#xFF0C;&#x53EF;&#x80FD;&#x4F1A;&#x4EA7;&#x751F;&#x7A0B;&#x5E8F;&#x8BA1;&#x6570;&#x5668;&#x662F;&#x5426;&#x662F;&#x591A;&#x4F59;&#x7684;&#x7591;&#x95EE;&#x3002;&#x56E0;&#x4E3A;&#x6CBF;&#x7740;&#x6307;&#x4EE4;&#x7684;&#x987A;&#x5E8F;&#x6267;&#x884C;&#x4E0B;&#x53BB;&#xFF0C;&#x5373;&#x4F7F;&#x662F;&#x5206;&#x652F;&#x8DF3;&#x8F6C;&#x8FD9;&#x6837;&#x7684;&#x6D41;&#x7A0B;&#xFF0C;&#x8DF3;&#x8F6C;&#x5230;&#x6307;&#x5B9A;&#x7684;&#x6307;&#x4EE4;&#x5904;&#x6309;&#x987A;&#x5E8F;&#x7EE7;&#x7EED;&#x6267;&#x884C;&#x662F;&#x5B8C;&#x5168;&#x80FD;&#x591F;&#x4FDD;&#x8BC1;&#x7A0B;&#x5E8F;&#x7684;&#x6267;&#x884C;&#x987A;&#x5E8F;&#x7684;&#x3002;&#x5047;&#x8BBE;&#x7A0B;&#x5E8F;&#x6C38;&#x8FDC;&#x53EA;&#x6709;&#x4E00;&#x4E2A;&#x7EBF;&#x7A0B;&#xFF0C;&#x8FD9;&#x4E2A;&#x7591;&#x95EE;&#x6CA1;&#x6709;&#x4EFB;&#x4F55;&#x95EE;&#x9898;&#xFF0C;&#x4E5F;&#x5C31;&#x662F;&#x8BF4;&#x5E76;&#x4E0D;&#x9700;&#x8981;&#x7A0B;&#x5E8F;&#x8BA1;&#x6570;&#x5668;&#x3002;&#x4F46;&#x5B9E;&#x9645;&#x4E0A;&#x7A0B;&#x5E8F;&#x662F;&#x901A;&#x8FC7;&#x591A;&#x4E2A;&#x7EBF;&#x7A0B;&#x534F;&#x540C;&#x5408;&#x4F5C;&#x6267;&#x884C;&#x7684;&#x3002;</p>
<p>&#x3000;&#x3000;&#x9996;&#x5148;&#x6211;&#x4EEC;&#x8981;&#x641E;&#x6E05;&#x695A;JVM&#x7684;&#x591A;&#x7EBF;&#x7A0B;&#x5B9E;&#x73B0;&#x65B9;&#x5F0F;&#x3002;JVM&#x7684;&#x591A;&#x7EBF;&#x7A0B;&#x662F;&#x901A;&#x8FC7;CPU&#x65F6;&#x95F4;&#x7247;&#x8F6E;&#x8F6C;&#xFF08;&#x5373;&#x7EBF;&#x7A0B;&#x8F6E;&#x6D41;&#x5207;&#x6362;&#x5E76;&#x5206;&#x914D;&#x5904;&#x7406;&#x5668;&#x6267;&#x884C;&#x65F6;&#x95F4;&#xFF09;&#x7B97;&#x6CD5;&#x6765;&#x5B9E;&#x73B0;&#x7684;&#x3002;&#x4E5F;&#x5C31;&#x662F;&#x8BF4;&#xFF0C;&#x67D0;&#x4E2A;&#x7EBF;&#x7A0B;&#x5728;&#x6267;&#x884C;&#x8FC7;&#x7A0B;&#x4E2D;&#x53EF;&#x80FD;&#x4F1A;&#x56E0;&#x4E3A;&#x65F6;&#x95F4;&#x7247;&#x8017;&#x5C3D;&#x800C;&#x88AB;&#x6302;&#x8D77;&#xFF0C;&#x800C;&#x53E6;&#x4E00;&#x4E2A;&#x7EBF;&#x7A0B;&#x83B7;&#x53D6;&#x5230;&#x65F6;&#x95F4;&#x7247;&#x5F00;&#x59CB;&#x6267;&#x884C;&#x3002;&#x5F53;&#x88AB;&#x6302;&#x8D77;&#x7684;&#x7EBF;&#x7A0B;&#x91CD;&#x65B0;&#x83B7;&#x53D6;&#x5230;&#x65F6;&#x95F4;&#x7247;&#x7684;&#x65F6;&#x5019;&#xFF0C;&#x5B83;&#x8981;&#x60F3;&#x4ECE;&#x88AB;&#x6302;&#x8D77;&#x7684;&#x5730;&#x65B9;&#x7EE7;&#x7EED;&#x6267;&#x884C;&#xFF0C;&#x5C31;&#x5FC5;&#x987B;&#x77E5;&#x9053;&#x5B83;&#x4E0A;&#x6B21;&#x6267;&#x884C;&#x5230;&#x54EA;&#x4E2A;&#x4F4D;&#x7F6E;&#xFF0C;&#x5728;JVM&#x4E2D;&#xFF0C;&#x901A;&#x8FC7;&#x7A0B;&#x5E8F;&#x8BA1;&#x6570;&#x5668;&#x6765;&#x8BB0;&#x5F55;&#x67D0;&#x4E2A;&#x7EBF;&#x7A0B;&#x7684;&#x5B57;&#x8282;&#x7801;&#x6267;&#x884C;&#x4F4D;&#x7F6E;&#x3002;&#x56E0;&#x6B64;&#xFF0C;&#x7A0B;&#x5E8F;&#x8BA1;&#x6570;&#x5668;&#x662F;&#x5177;&#x5907;&#x7EBF;&#x7A0B;&#x9694;&#x79BB;&#x7684;&#x7279;&#x6027;&#xFF0C;&#x4E5F;&#x5C31;&#x662F;&#x8BF4;&#xFF0C;&#x6BCF;&#x4E2A;&#x7EBF;&#x7A0B;&#x5DE5;&#x4F5C;&#x65F6;&#x90FD;&#x6709;&#x5C5E;&#x4E8E;&#x81EA;&#x5DF1;&#x7684;&#x72EC;&#x7ACB;&#x8BA1;&#x6570;&#x5668;&#x3002;</p>
<h4 id="22&#xFF09;&#x7A0B;&#x5E8F;&#x8BA1;&#x6570;&#x5668;&#x7684;&#x7279;&#x70B9;">2.2&#xFF09;&#x7A0B;&#x5E8F;&#x8BA1;&#x6570;&#x5668;&#x7684;&#x7279;&#x70B9;</h4>
<p>&#x3000;&#x3000;1.&#x7EBF;&#x7A0B;&#x9694;&#x79BB;&#x6027;&#xFF0C;&#x6BCF;&#x4E2A;&#x7EBF;&#x7A0B;&#x5DE5;&#x4F5C;&#x65F6;&#x90FD;&#x6709;&#x5C5E;&#x4E8E;&#x81EA;&#x5DF1;&#x7684;&#x72EC;&#x7ACB;&#x8BA1;&#x6570;&#x5668;&#x3002;
&#x3000;&#x3000;2.&#x6267;&#x884C;java&#x65B9;&#x6CD5;&#x65F6;&#xFF0C;&#x7A0B;&#x5E8F;&#x8BA1;&#x6570;&#x5668;&#x662F;&#x6709;&#x503C;&#x7684;&#xFF0C;&#x4E14;&#x8BB0;&#x5F55;&#x7684;&#x662F;&#x6B63;&#x5728;&#x6267;&#x884C;&#x7684;&#x5B57;&#x8282;&#x7801;&#x6307;&#x4EE4;&#x7684;&#x5730;&#x5740;&#xFF08;&#x53C2;&#x8003;&#x4E0A;&#x4E00;&#x5C0F;&#x8282;&#x7684;&#x63CF;&#x8FF0;&#xFF09;&#x3002;
&#x3000;&#x3000;3.&#x6267;&#x884C;native&#x672C;&#x5730;&#x65B9;&#x6CD5;&#x65F6;&#xFF0C;&#x7A0B;&#x5E8F;&#x8BA1;&#x6570;&#x5668;&#x7684;&#x503C;&#x4E3A;&#x7A7A;&#xFF08;Undefined&#xFF09;&#x3002;&#x56E0;&#x4E3A;native&#x65B9;&#x6CD5;&#x662F;java&#x901A;&#x8FC7;JNI&#x76F4;&#x63A5;&#x8C03;&#x7528;&#x672C;&#x5730;C/C++&#x5E93;&#xFF0C;&#x53EF;&#x4EE5;&#x8FD1;&#x4F3C;&#x7684;&#x8BA4;&#x4E3A;native&#x65B9;&#x6CD5;&#x76F8;&#x5F53;&#x4E8E;C/C++&#x66B4;&#x9732;&#x7ED9;java&#x7684;&#x4E00;&#x4E2A;&#x63A5;&#x53E3;&#xFF0C;java&#x901A;&#x8FC7;&#x8C03;&#x7528;&#x8FD9;&#x4E2A;&#x63A5;&#x53E3;&#x4ECE;&#x800C;&#x8C03;&#x7528;&#x5230;C/C++&#x65B9;&#x6CD5;&#x3002;&#x7531;&#x4E8E;&#x8BE5;&#x65B9;&#x6CD5;&#x662F;&#x901A;&#x8FC7;C/C++&#x800C;&#x4E0D;&#x662F;java&#x8FDB;&#x884C;&#x5B9E;&#x73B0;&#x3002;&#x90A3;&#x4E48;&#x81EA;&#x7136;&#x65E0;&#x6CD5;&#x4EA7;&#x751F;&#x76F8;&#x5E94;&#x7684;&#x5B57;&#x8282;&#x7801;&#xFF0C;&#x5E76;&#x4E14;C/C++&#x6267;&#x884C;&#x65F6;&#x7684;&#x5185;&#x5B58;&#x5206;&#x914D;&#x662F;&#x7531;&#x81EA;&#x5DF1;&#x8BED;&#x8A00;&#x51B3;&#x5B9A;&#x7684;&#xFF0C;&#x800C;&#x4E0D;&#x662F;&#x7531;JVM&#x51B3;&#x5B9A;&#x7684;&#x3002;</p>
<p><img src="D:\Typora\java&#x6838;&#x5FC3;\jvm\assets\1266638-20180710225811662-425101318.png" alt="img"></p>
<p><img src="file:///D:/Documents/My%20Knowledge/temp/b4935830-53fb-49a2-96d5-bcc500170fc6/128/index_files/c1c65fb9-8e73-494f-8a6e-1d833c38f2e1.png" alt="img"></p>
<p>&#x3000;&#x3000;4.&#x7A0B;&#x5E8F;&#x8BA1;&#x6570;&#x5668;&#x5360;&#x7528;&#x5185;&#x5B58;&#x5F88;&#x5C0F;&#xFF0C;&#x5728;&#x8FDB;&#x884C;JVM&#x5185;&#x5B58;&#x8BA1;&#x7B97;&#x65F6;&#xFF0C;&#x53EF;&#x4EE5;&#x5FFD;&#x7565;&#x4E0D;&#x8BA1;&#x3002;</p>
<p>&#x3000;&#x3000;5.&#x7A0B;&#x5E8F;&#x8BA1;&#x6570;&#x5668;&#xFF0C;&#x662F;&#x552F;&#x4E00;&#x4E00;&#x4E2A;&#x5728;java&#x865A;&#x62DF;&#x673A;&#x89C4;&#x8303;&#x4E2D;&#x6CA1;&#x6709;&#x89C4;&#x5B9A;&#x4EFB;&#x4F55;OutOfMemoryError&#x7684;&#x533A;&#x57DF;&#x3002;</p>
</blockquote>
<p>1.1.2 Java &#x865A;&#x62DF;&#x673A;&#x6808;</p>
<blockquote>
<p>&#x7EBF;&#x7A0B;&#x79C1;&#x6709;&#xFF0C;&#x751F;&#x547D;&#x5468;&#x671F;&#x548C;&#x7EBF;&#x7A0B;&#x4E00;&#x81F4;&#x3002;&#x63CF;&#x8FF0;&#x7684;&#x662F; Java &#x65B9;&#x6CD5;&#x6267;&#x884C;&#x7684;&#x5185;&#x5B58;&#x6A21;&#x578B;&#xFF1A;&#x6BCF;&#x4E2A;&#x65B9;&#x6CD5;&#x5728;&#x6267;&#x884C;&#x65F6;&#x90FD;&#x4F1A;&#x5E8A;&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x6808;&#x5E27;(Stack Frame)&#x7528;&#x4E8E;&#x5B58;&#x50A8;<code>&#x5C40;&#x90E8;&#x53D8;&#x91CF;&#x8868;</code>&#x3001;<code>&#x64CD;&#x4F5C;&#x6570;&#x6808;</code>&#x3001;<code>&#x52A8;&#x6001;&#x94FE;&#x63A5;</code>&#x3001;<code>&#x65B9;&#x6CD5;&#x51FA;&#x53E3;</code>&#x7B49;&#x4FE1;&#x606F;&#x3002;&#x6BCF;&#x4E00;&#x4E2A;&#x65B9;&#x6CD5;&#x4ECE;&#x8C03;&#x7528;&#x76F4;&#x81F3;&#x6267;&#x884C;&#x7ED3;&#x675F;&#xFF0C;&#x5C31;&#x5BF9;&#x5E94;&#x7740;&#x4E00;&#x4E2A;&#x6808;&#x5E27;&#x4ECE;&#x865A;&#x62DF;&#x673A;&#x6808;&#x4E2D;&#x5165;&#x6808;&#x5230;&#x51FA;&#x6808;&#x7684;&#x8FC7;&#x7A0B;&#x3002;</p>
</blockquote>
<p>&#x5C40;&#x90E8;&#x53D8;&#x91CF;&#x8868;&#xFF1A;&#x5B58;&#x653E;&#x4E86;&#x7F16;&#x8BD1;&#x671F;&#x53EF;&#x77E5;&#x7684;&#x5404;&#x79CD;&#x57FA;&#x672C;&#x7C7B;&#x578B;(boolean&#x3001;byte&#x3001;char&#x3001;short&#x3001;int&#x3001;float&#x3001;long&#x3001;double)&#x3001;&#x5BF9;&#x8C61;&#x5F15;&#x7528;(reference &#x7C7B;&#x578B;)&#x548C; returnAddress &#x7C7B;&#x578B;(&#x6307;&#x5411;&#x4E86;&#x4E00;&#x6761;&#x5B57;&#x8282;&#x7801;&#x6307;&#x4EE4;&#x7684;&#x5730;&#x5740;)</p>
<p>StackOverflowError&#xFF1A;&#x7EBF;&#x7A0B;&#x8BF7;&#x6C42;&#x7684;&#x6808;&#x6DF1;&#x5EA6;&#x5927;&#x4E8E;&#x865A;&#x62DF;&#x673A;&#x6240;&#x5141;&#x8BB8;&#x7684;&#x6DF1;&#x5EA6;&#x3002;
OutOfMemoryError&#xFF1A;&#x5982;&#x679C;&#x865A;&#x62DF;&#x673A;&#x6808;&#x53EF;&#x4EE5;&#x52A8;&#x6001;&#x6269;&#x5C55;&#xFF0C;&#x800C;&#x6269;&#x5C55;&#x65F6;&#x65E0;&#x6CD5;&#x7533;&#x8BF7;&#x5230;&#x8DB3;&#x591F;&#x7684;&#x5185;&#x5B58;&#x3002;</p>
<p>1.1.3 &#x672C;&#x5730;&#x65B9;&#x6CD5;&#x6808;</p>
<blockquote>
<p>&#x533A;&#x522B;&#x4E8E; Java &#x865A;&#x62DF;&#x673A;&#x6808;&#x7684;&#x662F;&#xFF0C;Java &#x865A;&#x62DF;&#x673A;&#x6808;&#x4E3A;&#x865A;&#x62DF;&#x673A;&#x6267;&#x884C; Java &#x65B9;&#x6CD5;(&#x4E5F;&#x5C31;&#x662F;&#x5B57;&#x8282;&#x7801;)&#x670D;&#x52A1;&#xFF0C;&#x800C;&#x672C;&#x5730;&#x65B9;&#x6CD5;&#x6808;&#x5219;&#x4E3A;&#x865A;&#x62DF;&#x673A;&#x4F7F;&#x7528;&#x5230;&#x7684; Native &#x65B9;&#x6CD5;&#x670D;&#x52A1;&#x3002;&#x4E5F;&#x4F1A;&#x6709; StackOverflowError &#x548C; OutOfMemoryError &#x5F02;&#x5E38;&#x3002;</p>
</blockquote>
<p>1.1.4 Java &#x5806;</p>
<blockquote>
<p>&#x5BF9;&#x4E8E;&#x7EDD;&#x5927;&#x591A;&#x6570;&#x5E94;&#x7528;&#x6765;&#x8BF4;&#xFF0C;&#x8FD9;&#x5757;&#x533A;&#x57DF;&#x662F; JVM &#x6240;&#x7BA1;&#x7406;&#x7684;&#x5185;&#x5B58;&#x4E2D;&#x6700;&#x5927;&#x7684;&#x4E00;&#x5757;&#x3002;&#x7EBF;&#x7A0B;&#x5171;&#x4EAB;&#xFF0C;&#x4E3B;&#x8981;&#x662F;&#x5B58;&#x653E;&#x5BF9;&#x8C61;&#x5B9E;&#x4F8B;&#x548C;&#x6570;&#x7EC4;&#x3002;&#x5185;&#x90E8;&#x4F1A;&#x5212;&#x5206;&#x51FA;&#x591A;&#x4E2A;&#x7EBF;&#x7A0B;&#x79C1;&#x6709;&#x7684;&#x5206;&#x914D;&#x7F13;&#x51B2;&#x533A;(Thread Local Allocation Buffer, TLAB)&#x3002;&#x53EF;&#x4EE5;&#x4F4D;&#x4E8E;&#x7269;&#x7406;&#x4E0A;&#x4E0D;&#x8FDE;&#x7EED;&#x7684;&#x7A7A;&#x95F4;&#xFF0C;&#x4F46;&#x662F;&#x903B;&#x8F91;&#x4E0A;&#x8981;&#x8FDE;&#x7EED;&#x3002;</p>
</blockquote>
<p>OutOfMemoryError&#xFF1A;&#x5982;&#x679C;&#x5806;&#x4E2D;&#x6CA1;&#x6709;&#x5185;&#x5B58;&#x5B8C;&#x6210;&#x5B9E;&#x4F8B;&#x5206;&#x914D;&#xFF0C;&#x5E76;&#x4E14;&#x5806;&#x4E5F;&#x65E0;&#x6CD5;&#x518D;&#x6269;&#x5C55;&#x65F6;&#xFF0C;&#x629B;&#x51FA;&#x8BE5;&#x5F02;&#x5E38;&#x3002;</p>
<p>1.1.5 &#x65B9;&#x6CD5;&#x533A;</p>
<blockquote>
<p>&#x5C5E;&#x4E8E;&#x5171;&#x4EAB;&#x5185;&#x5B58;&#x533A;&#x57DF;&#xFF0C;&#x5B58;&#x50A8;&#x5DF2;&#x88AB;&#x865A;&#x62DF;&#x673A;&#x52A0;&#x8F7D;&#x7684;&#x7C7B;&#x4FE1;&#x606F;&#x3001;&#x5E38;&#x91CF;&#x3001;&#x9759;&#x6001;&#x53D8;&#x91CF;&#x3001;&#x5373;&#x65F6;&#x7F16;&#x8BD1;&#x5668;&#x7F16;&#x8BD1;&#x540E;&#x7684;&#x4EE3;&#x7801;&#x7B49;&#x6570;&#x636E;&#x3002;</p>
</blockquote>
<p>&#x73B0;&#x5728;&#x7528;&#x4E00;&#x5F20;&#x56FE;&#x6765;&#x4ECB;&#x7ECD;&#x6BCF;&#x4E2A;&#x533A;&#x57DF;&#x5B58;&#x50A8;&#x7684;&#x5185;&#x5BB9;&#x3002;</p>
<p><img src="D:\Typora\java&#x6838;&#x5FC3;\jvm\assets\aHR0cHM6Ly91c2VyLWdvbGQtY2RuLnhpdHUuaW8vMjAxNy85LzQvZGE3N2Q5MDE0Njc4NmMwY2IzZTE3MGI5YzkzNzZhZTQ_aW1hZ2VWaWV3Mi8wL3cvMTI4MC9oLzk2MC9mb3JtYXQvd2VicC9pZ25vcmUtZXJyb3IvMQ-1595949481532.jfif" alt="img"></p>
<p>1.1.6 &#x8FD0;&#x884C;&#x65F6;&#x5E38;&#x91CF;&#x6C60;</p>
<blockquote>
<p>&#x5C5E;&#x4E8E;&#x65B9;&#x6CD5;&#x533A;&#x4E00;&#x90E8;&#x5206;&#xFF0C;&#x7528;&#x4E8E;&#x5B58;&#x653E;&#x7F16;&#x8BD1;&#x671F;&#x751F;&#x6210;&#x7684;&#x5404;&#x79CD;&#x5B57;&#x9762;&#x91CF;&#x548C;&#x7B26;&#x53F7;&#x5F15;&#x7528;&#x3002;&#x7F16;&#x8BD1;&#x5668;&#x548C;&#x8FD0;&#x884C;&#x671F;(String &#x7684; intern() )&#x90FD;&#x53EF;&#x4EE5;&#x5C06;&#x5E38;&#x91CF;&#x653E;&#x5165;&#x6C60;&#x4E2D;&#x3002;&#x5185;&#x5B58;&#x6709;&#x9650;&#xFF0C;&#x65E0;&#x6CD5;&#x7533;&#x8BF7;&#x65F6;&#x629B;&#x51FA; OutOfMemoryError&#x3002;</p>
</blockquote>
<p>1.1.7 &#x76F4;&#x63A5;&#x5185;&#x5B58;</p>
<blockquote>
<p>&#x975E;&#x865A;&#x62DF;&#x673A;&#x8FD0;&#x884C;&#x65F6;&#x6570;&#x636E;&#x533A;&#x7684;&#x90E8;&#x5206;</p>
</blockquote>
<p>&#x5728; JDK 1.4 &#x4E2D;&#x65B0;&#x52A0;&#x5165; NIO (New Input/Output) &#x7C7B;&#xFF0C;&#x5F15;&#x5165;&#x4E86;&#x4E00;&#x79CD;&#x57FA;&#x4E8E;&#x901A;&#x9053;(Channel)&#x548C;&#x7F13;&#x5B58;(Buffer)&#x7684; I/O &#x65B9;&#x5F0F;&#xFF0C;&#x5B83;&#x53EF;&#x4EE5;&#x4F7F;&#x7528; Native &#x51FD;&#x6570;&#x5E93;&#x76F4;&#x63A5;&#x5206;&#x914D;&#x5806;&#x5916;&#x5185;&#x5B58;&#xFF0C;&#x7136;&#x540E;&#x901A;&#x8FC7;&#x4E00;&#x4E2A;&#x5B58;&#x50A8;&#x5728; Java &#x5806;&#x4E2D;&#x7684; DirectByteBuffer &#x5BF9;&#x8C61;&#x4F5C;&#x4E3A;&#x8FD9;&#x5757;&#x5185;&#x5B58;&#x7684;&#x5F15;&#x7528;&#x8FDB;&#x884C;&#x64CD;&#x4F5C;&#x3002;&#x53EF;&#x4EE5;&#x907F;&#x514D;&#x5728; Java &#x5806;&#x548C; Native &#x5806;&#x4E2D;&#x6765;&#x56DE;&#x7684;&#x6570;&#x636E;&#x8017;&#x65F6;&#x64CD;&#x4F5C;&#x3002;
OutOfMemoryError&#xFF1A;&#x4F1A;&#x53D7;&#x5230;&#x672C;&#x673A;&#x5185;&#x5B58;&#x9650;&#x5236;&#xFF0C;&#x5982;&#x679C;&#x5185;&#x5B58;&#x533A;&#x57DF;&#x603B;&#x548C;&#x5927;&#x4E8E;&#x7269;&#x7406;&#x5185;&#x5B58;&#x9650;&#x5236;&#x4ECE;&#x800C;&#x5BFC;&#x81F4;&#x52A8;&#x6001;&#x6269;&#x5C55;&#x65F6;&#x51FA;&#x73B0;&#x8BE5;&#x5F02;&#x5E38;&#x3002;</p>
<h3 id="12-hotspot-&#x865A;&#x62DF;&#x673A;&#x5BF9;&#x8C61;&#x63A2;&#x79D8;">1.2 HotSpot &#x865A;&#x62DF;&#x673A;&#x5BF9;&#x8C61;&#x63A2;&#x79D8;</h3>
<blockquote>
<p>&#x4E3B;&#x8981;&#x4ECB;&#x7ECD;&#x6570;&#x636E;&#x662F;&#x5982;&#x4F55;&#x521B;&#x5EFA;&#x3001;&#x5982;&#x4F55;&#x5E03;&#x5C40;&#x4EE5;&#x53CA;&#x5982;&#x4F55;&#x8BBF;&#x95EE;&#x7684;&#x3002;</p>
</blockquote>
<p>1.2.1 &#x5BF9;&#x8C61;&#x7684;&#x521B;&#x5EFA;</p>
<blockquote>
<p>&#x521B;&#x5EFA;&#x8FC7;&#x7A0B;&#x6BD4;&#x8F83;&#x590D;&#x6742;&#xFF0C;&#x5EFA;&#x8BAE;&#x770B;&#x4E66;&#x4E86;&#x89E3;&#xFF0C;&#x8FD9;&#x91CC;&#x63D0;&#x4F9B;&#x4E2A;&#x4EBA;&#x7684;&#x603B;&#x7ED3;&#x3002;</p>
</blockquote>
<p>&#x9047;&#x5230; new &#x6307;&#x4EE4;&#x65F6;&#xFF0C;&#x9996;&#x5148;&#x68C0;&#x67E5;&#x8FD9;&#x4E2A;&#x6307;&#x4EE4;&#x7684;&#x53C2;&#x6570;&#x662F;&#x5426;&#x80FD;&#x5728;&#x5E38;&#x91CF;&#x6C60;&#x4E2D;&#x5B9A;&#x4F4D;&#x5230;&#x4E00;&#x4E2A;&#x7C7B;&#x7684;&#x7B26;&#x53F7;&#x5F15;&#x7528;&#xFF0C;&#x5E76;&#x4E14;&#x68C0;&#x67E5;&#x8FD9;&#x4E2A;&#x7B26;&#x53F7;&#x5F15;&#x7528;&#x4EE3;&#x8868;&#x7684;&#x7C7B;&#x662F;&#x5426;&#x5DF2;&#x7ECF;&#x88AB;&#x52A0;&#x8F7D;&#x3001;&#x89E3;&#x6790;&#x548C;&#x521D;&#x59CB;&#x5316;&#x8FC7;&#x3002;&#x5982;&#x679C;&#x6CA1;&#x6709;&#xFF0C;&#x6267;&#x884C;&#x76F8;&#x5E94;&#x7684;&#x7C7B;&#x52A0;&#x8F7D;&#x3002;
&#x7C7B;&#x52A0;&#x8F7D;&#x68C0;&#x67E5;&#x901A;&#x8FC7;&#x4E4B;&#x540E;&#xFF0C;&#x4E3A;&#x65B0;&#x5BF9;&#x8C61;&#x5206;&#x914D;&#x5185;&#x5B58;(&#x5185;&#x5B58;&#x5927;&#x5C0F;&#x5728;&#x7C7B;&#x52A0;&#x8F7D;&#x5B8C;&#x6210;&#x540E;&#x4FBF;&#x53EF;&#x786E;&#x8BA4;)&#x3002;&#x5728;&#x5806;&#x7684;&#x7A7A;&#x95F2;&#x5185;&#x5B58;&#x4E2D;&#x5212;&#x5206;&#x4E00;&#x5757;&#x533A;&#x57DF;(&#x2018;&#x6307;&#x9488;&#x78B0;&#x649E;-&#x5185;&#x5B58;&#x89C4;&#x6574;&#x2019;&#x6216;&#x2018;&#x7A7A;&#x95F2;&#x5217;&#x8868;-&#x5185;&#x5B58;&#x4EA4;&#x9519;&#x2019;&#x7684;&#x5206;&#x914D;&#x65B9;&#x5F0F;)&#x3002;
&#x524D;&#x9762;&#x8BB2;&#x7684;&#x6BCF;&#x4E2A;&#x7EBF;&#x7A0B;&#x5728;&#x5806;&#x4E2D;&#x90FD;&#x4F1A;&#x6709;&#x79C1;&#x6709;&#x7684;&#x5206;&#x914D;&#x7F13;&#x51B2;&#x533A;(TLAB)&#xFF0C;&#x8FD9;&#x6837;&#x53EF;&#x4EE5;&#x5F88;&#x5927;&#x7A0B;&#x5EA6;&#x907F;&#x514D;&#x5728;&#x5E76;&#x53D1;&#x60C5;&#x51B5;&#x4E0B;&#x9891;&#x7E41;&#x521B;&#x5EFA;&#x5BF9;&#x8C61;&#x9020;&#x6210;&#x7684;&#x7EBF;&#x7A0B;&#x4E0D;&#x5B89;&#x5168;&#x3002;
&#x5185;&#x5B58;&#x7A7A;&#x95F4;&#x5206;&#x914D;&#x5B8C;&#x6210;&#x540E;&#x4F1A;&#x521D;&#x59CB;&#x5316;&#x4E3A; 0(&#x4E0D;&#x5305;&#x62EC;&#x5BF9;&#x8C61;&#x5934;)&#xFF0C;&#x63A5;&#x4E0B;&#x6765;&#x5C31;&#x662F;&#x586B;&#x5145;&#x5BF9;&#x8C61;&#x5934;&#xFF0C;&#x628A;&#x5BF9;&#x8C61;&#x662F;&#x54EA;&#x4E2A;&#x7C7B;&#x7684;&#x5B9E;&#x4F8B;&#x3001;&#x5982;&#x4F55;&#x624D;&#x80FD;&#x627E;&#x5230;&#x7C7B;&#x7684;&#x5143;&#x6570;&#x636E;&#x4FE1;&#x606F;&#x3001;&#x5BF9;&#x8C61;&#x7684;&#x54C8;&#x5E0C;&#x7801;&#x3001;&#x5BF9;&#x8C61;&#x7684; GC &#x5206;&#x4EE3;&#x5E74;&#x9F84;&#x7B49;&#x4FE1;&#x606F;&#x5B58;&#x5165;&#x5BF9;&#x8C61;&#x5934;&#x3002;
&#x6267;&#x884C; new &#x6307;&#x4EE4;&#x540E;&#x6267;&#x884C; init &#x65B9;&#x6CD5;&#x540E;&#x624D;&#x7B97;&#x4E00;&#x4EFD;&#x771F;&#x6B63;&#x53EF;&#x7528;&#x7684;&#x5BF9;&#x8C61;&#x521B;&#x5EFA;&#x5B8C;&#x6210;&#x3002;</p>
<p>1.2.2 &#x5BF9;&#x8C61;&#x7684;&#x5185;&#x5B58;&#x5E03;&#x5C40;</p>
<blockquote>
<p>&#x5728; HotSpot &#x865A;&#x62DF;&#x673A;&#x4E2D;&#xFF0C;&#x5206;&#x4E3A; 3 &#x5757;&#x533A;&#x57DF;&#xFF1A;<code>&#x5BF9;&#x8C61;&#x5934;(Header)</code>&#x3001;<code>&#x5B9E;&#x4F8B;&#x6570;&#x636E;(Instance Data)</code>&#x548C;<code>&#x5BF9;&#x9F50;&#x586B;&#x5145;(Padding)</code></p>
</blockquote>
<p><code>&#x5BF9;&#x8C61;&#x5934;(Header)</code>&#xFF1A;&#x5305;&#x542B;&#x4E24;&#x90E8;&#x5206;&#xFF0C;&#x7B2C;&#x4E00;&#x90E8;&#x5206;&#x7528;&#x4E8E;&#x5B58;&#x50A8;&#x5BF9;&#x8C61;&#x81EA;&#x8EAB;&#x7684;&#x8FD0;&#x884C;&#x65F6;&#x6570;&#x636E;&#xFF0C;&#x5982;&#x54C8;&#x5E0C;&#x7801;&#x3001;GC &#x5206;&#x4EE3;&#x5E74;&#x9F84;&#x3001;&#x9501;&#x72B6;&#x6001;&#x6807;&#x5FD7;&#x3001;&#x7EBF;&#x7A0B;&#x6301;&#x6709;&#x7684;&#x9501;&#x3001;&#x504F;&#x5411;&#x7EBF;&#x7A0B; ID&#x3001;&#x504F;&#x5411;&#x65F6;&#x95F4;&#x6233;&#x7B49;&#xFF0C;32 &#x4F4D;&#x865A;&#x62DF;&#x673A;&#x5360; 32 bit&#xFF0C;64 &#x4F4D;&#x865A;&#x62DF;&#x673A;&#x5360; 64 bit&#x3002;&#x5B98;&#x65B9;&#x79F0;&#x4E3A; &#x2018;Mark Word&#x2019;&#x3002;&#x7B2C;&#x4E8C;&#x90E8;&#x5206;&#x662F;&#x7C7B;&#x578B;&#x6307;&#x9488;&#xFF0C;&#x5373;&#x5BF9;&#x8C61;&#x6307;&#x5411;&#x5B83;&#x7684;&#x7C7B;&#x7684;&#x5143;&#x6570;&#x636E;&#x6307;&#x9488;&#xFF0C;&#x865A;&#x62DF;&#x673A;&#x901A;&#x8FC7;&#x8FD9;&#x4E2A;&#x6307;&#x9488;&#x786E;&#x5B9A;&#x8FD9;&#x4E2A;&#x5BF9;&#x8C61;&#x662F;&#x54EA;&#x4E2A;&#x7C7B;&#x7684;&#x5B9E;&#x4F8B;&#x3002;&#x53E6;&#x5916;&#xFF0C;&#x5982;&#x679C;&#x662F; Java &#x6570;&#x7EC4;&#xFF0C;&#x5BF9;&#x8C61;&#x5934;&#x4E2D;&#x8FD8;&#x5FC5;&#x987B;&#x6709;&#x4E00;&#x5757;&#x7528;&#x4E8E;&#x8BB0;&#x5F55;&#x6570;&#x7EC4;&#x957F;&#x5EA6;&#x7684;&#x6570;&#x636E;&#xFF0C;&#x56E0;&#x4E3A;&#x666E;&#x901A;&#x5BF9;&#x8C61;&#x53EF;&#x4EE5;&#x901A;&#x8FC7; Java &#x5BF9;&#x8C61;&#x5143;&#x6570;&#x636E;&#x786E;&#x5B9A;&#x5927;&#x5C0F;&#xFF0C;&#x800C;&#x6570;&#x7EC4;&#x5BF9;&#x8C61;&#x4E0D;&#x53EF;&#x4EE5;&#x3002;
<code>&#x5B9E;&#x4F8B;&#x6570;&#x636E;(Instance Data)</code>&#xFF1A;&#x7A0B;&#x5E8F;&#x4EE3;&#x7801;&#x4E2D;&#x6240;&#x5B9A;&#x4E49;&#x7684;&#x5404;&#x79CD;&#x7C7B;&#x578B;&#x7684;&#x5B57;&#x6BB5;&#x5185;&#x5BB9;(&#x5305;&#x542B;&#x7236;&#x7C7B;&#x7EE7;&#x627F;&#x4E0B;&#x6765;&#x7684;&#x548C;&#x5B50;&#x7C7B;&#x4E2D;&#x5B9A;&#x4E49;&#x7684;)&#x3002;
<code>&#x5BF9;&#x9F50;&#x586B;&#x5145;(Padding)</code>&#xFF1A;&#x4E0D;&#x662F;&#x5FC5;&#x7136;&#x9700;&#x8981;&#xFF0C;&#x4E3B;&#x8981;&#x662F;&#x5360;&#x4F4D;&#xFF0C;&#x4FDD;&#x8BC1;&#x5BF9;&#x8C61;&#x5927;&#x5C0F;&#x662F;&#x67D0;&#x4E2A;&#x5B57;&#x8282;&#x7684;&#x6574;&#x6570;&#x500D;&#x3002;</p>
<p>1.2.3 &#x5BF9;&#x8C61;&#x7684;&#x8BBF;&#x95EE;&#x5B9A;&#x4F4D;</p>
<blockquote>
<p>&#x4F7F;&#x7528;&#x5BF9;&#x8C61;&#x65F6;&#xFF0C;&#x901A;&#x8FC7;&#x6808;&#x4E0A;&#x7684; reference &#x6570;&#x636E;&#x6765;&#x64CD;&#x4F5C;&#x5806;&#x4E0A;&#x7684;&#x5177;&#x4F53;&#x5BF9;&#x8C61;&#x3002;</p>
</blockquote>
<p>&#x901A;&#x8FC7;&#x53E5;&#x67C4;&#x8BBF;&#x95EE;</p>
<blockquote>
<p>Java &#x5806;&#x4E2D;&#x4F1A;&#x5206;&#x914D;&#x4E00;&#x5757;&#x5185;&#x5B58;&#x4F5C;&#x4E3A;&#x53E5;&#x67C4;&#x6C60;&#x3002;reference &#x5B58;&#x50A8;&#x7684;&#x662F;&#x53E5;&#x67C4;&#x5730;&#x5740;&#x3002;&#x8BE6;&#x60C5;&#x89C1;&#x56FE;&#x3002;</p>
</blockquote>
<p><img src="D:\Typora\java&#x6838;&#x5FC3;\jvm\assets\aHR0cHM6Ly91c2VyLWdvbGQtY2RuLnhpdHUuaW8vMjAxNy85LzQvZWJmMDBlZDI2YzM1YWVmZDkzZDVhM2EzNmIzYjE2MTM_aW1hZ2VWaWV3Mi8wL3cvMTI4MC9oLzk2MC9mb3JtYXQvd2VicC9pZ25vcmUtZXJyb3IvMQ.jfif" alt="img"></p>
<p>&#x4F7F;&#x7528;&#x76F4;&#x63A5;&#x6307;&#x9488;&#x8BBF;&#x95EE;</p>
<blockquote>
<p>reference &#x4E2D;&#x76F4;&#x63A5;&#x5B58;&#x50A8;&#x5BF9;&#x8C61;&#x5730;&#x5740;</p>
</blockquote>
<p><img src="D:\Typora\java&#x6838;&#x5FC3;\jvm\assets\aHR0cHM6Ly91c2VyLWdvbGQtY2RuLnhpdHUuaW8vMjAxNy85LzQvZGU2OTI0YjZlOWQ1NzYxMDViYTI0NzAwZjFmMzU3ZjQ_aW1hZ2VWaWV3Mi8wL3cvMTI4MC9oLzk2MC9mb3JtYXQvd2VicC9pZ25vcmUtZXJyb3IvMQ.jfif" alt="img"></p>
<p>&#x6BD4;&#x8F83;&#xFF1A;&#x4F7F;&#x7528;&#x53E5;&#x67C4;&#x7684;&#x6700;&#x5927;&#x597D;&#x5904;&#x662F; reference &#x4E2D;&#x5B58;&#x50A8;&#x7684;&#x662F;&#x7A33;&#x5B9A;&#x7684;&#x53E5;&#x67C4;&#x5730;&#x5740;&#xFF0C;&#x5728;&#x5BF9;&#x8C61;&#x79FB;&#x52A8;(GC)&#x662F;&#x53EA;&#x6539;&#x53D8;&#x5B9E;&#x4F8B;&#x6570;&#x636E;&#x6307;&#x9488;&#x5730;&#x5740;&#xFF0C;reference &#x81EA;&#x8EAB;&#x4E0D;&#x9700;&#x8981;&#x4FEE;&#x6539;&#x3002;&#x76F4;&#x63A5;&#x6307;&#x9488;&#x8BBF;&#x95EE;&#x7684;&#x6700;&#x5927;&#x597D;&#x5904;&#x662F;&#x901F;&#x5EA6;&#x5FEB;&#xFF0C;&#x8282;&#x7701;&#x4E86;&#x4E00;&#x6B21;&#x6307;&#x9488;&#x5B9A;&#x4F4D;&#x7684;&#x65F6;&#x95F4;&#x5F00;&#x9500;&#x3002;&#x5982;&#x679C;&#x662F;&#x5BF9;&#x8C61;&#x9891;&#x7E41; GC &#x90A3;&#x4E48;&#x53E5;&#x67C4;&#x65B9;&#x6CD5;&#x597D;&#xFF0C;&#x5982;&#x679C;&#x662F;&#x5BF9;&#x8C61;&#x9891;&#x7E41;&#x8BBF;&#x95EE;&#x5219;&#x76F4;&#x63A5;&#x6307;&#x9488;&#x8BBF;&#x95EE;&#x597D;&#x3002;</p>
<h3 id="13-&#x5B9E;&#x6218;">1.3 &#x5B9E;&#x6218;</h3>
<blockquote>
<p>// &#x5F85;&#x586B;</p>
</blockquote>
<h2 id="2-&#x5783;&#x573E;&#x56DE;&#x6536;&#x5668;&#x4E0E;&#x5185;&#x5B58;&#x5206;&#x914D;&#x7B56;&#x7565;">2. &#x5783;&#x573E;&#x56DE;&#x6536;&#x5668;&#x4E0E;&#x5185;&#x5B58;&#x5206;&#x914D;&#x7B56;&#x7565;</h2>
<h3 id="21-&#x6982;&#x8FF0;">2.1 &#x6982;&#x8FF0;</h3>
<blockquote>
<p>&#x7A0B;&#x5E8F;&#x8BA1;&#x6570;&#x5668;&#x3001;&#x865A;&#x62DF;&#x673A;&#x6808;&#x3001;&#x672C;&#x5730;&#x65B9;&#x6CD5;&#x6808; 3 &#x4E2A;&#x533A;&#x57DF;&#x968F;&#x7EBF;&#x7A0B;&#x751F;&#x706D;(&#x56E0;&#x4E3A;&#x662F;&#x7EBF;&#x7A0B;&#x79C1;&#x6709;)&#xFF0C;&#x6808;&#x4E2D;&#x7684;&#x6808;&#x5E27;&#x968F;&#x7740;&#x65B9;&#x6CD5;&#x7684;&#x8FDB;&#x5165;&#x548C;&#x9000;&#x51FA;&#x800C;&#x6709;&#x6761;&#x4E0D;&#x7D0A;&#x5730;&#x6267;&#x884C;&#x7740;&#x51FA;&#x6808;&#x548C;&#x5165;&#x6808;&#x64CD;&#x4F5C;&#x3002;&#x800C; Java &#x5806;&#x548C;&#x65B9;&#x6CD5;&#x533A;&#x5219;&#x4E0D;&#x4E00;&#x6837;&#xFF0C;&#x4E00;&#x4E2A;&#x63A5;&#x53E3;&#x4E2D;&#x7684;&#x591A;&#x4E2A;&#x5B9E;&#x73B0;&#x7C7B;&#x9700;&#x8981;&#x7684;&#x5185;&#x5B58;&#x53EF;&#x80FD;&#x4E0D;&#x4E00;&#x6837;&#xFF0C;&#x4E00;&#x4E2A;&#x65B9;&#x6CD5;&#x4E2D;&#x7684;&#x591A;&#x4E2A;&#x5206;&#x652F;&#x9700;&#x8981;&#x7684;&#x5185;&#x5B58;&#x4E5F;&#x53EF;&#x80FD;&#x4E0D;&#x4E00;&#x6837;&#xFF0C;&#x6211;&#x4EEC;&#x53EA;&#x6709;&#x5728;&#x7A0B;&#x5E8F;&#x5904;&#x4E8E;&#x8FD0;&#x884C;&#x671F;&#x624D;&#x77E5;&#x9053;&#x90A3;&#x4E9B;&#x5BF9;&#x8C61;&#x4F1A;&#x521B;&#x5EFA;&#xFF0C;&#x8FD9;&#x90E8;&#x5206;&#x5185;&#x5B58;&#x7684;&#x5206;&#x914D;&#x548C;&#x56DE;&#x6536;&#x90FD;&#x662F;&#x52A8;&#x6001;&#x7684;&#xFF0C;&#x5783;&#x573E;&#x56DE;&#x6536;&#x671F;&#x6240;&#x5173;&#x6CE8;&#x7684;&#x5C31;&#x662F;&#x8FD9;&#x90E8;&#x5206;&#x5185;&#x5B58;&#x3002;</p>
</blockquote>
<h3 id="22-&#x5BF9;&#x8C61;&#x5DF2;&#x6B7B;&#x5417;&#xFF1F;">2.2 &#x5BF9;&#x8C61;&#x5DF2;&#x6B7B;&#x5417;&#xFF1F;</h3>
<blockquote>
<p>&#x5728;&#x8FDB;&#x884C;&#x5185;&#x5B58;&#x56DE;&#x6536;&#x4E4B;&#x524D;&#x8981;&#x505A;&#x7684;&#x4E8B;&#x60C5;&#x5C31;&#x662F;&#x5224;&#x65AD;&#x90A3;&#x4E9B;&#x5BF9;&#x8C61;&#x662F;&#x2018;&#x6B7B;&#x2019;&#x7684;&#xFF0C;&#x54EA;&#x4E9B;&#x662F;&#x2018;&#x6D3B;&#x2019;&#x7684;&#x3002;</p>
</blockquote>
<p>2.2.1 &#x5F15;&#x7528;&#x8BA1;&#x6570;&#x6CD5;</p>
<blockquote>
<p>&#x7ED9;&#x5BF9;&#x8C61;&#x6DFB;&#x52A0;&#x4E00;&#x4E2A;&#x5F15;&#x7528;&#x8BA1;&#x6570;&#x5668;&#x3002;&#x4F46;&#x662F;&#x96BE;&#x4EE5;&#x89E3;&#x51B3;&#x5FAA;&#x73AF;&#x5F15;&#x7528;&#x95EE;&#x9898;&#x3002;</p>
</blockquote>
<p><img src="D:\Typora\java&#x6838;&#x5FC3;\jvm\assets\aHR0cHM6Ly91c2VyLWdvbGQtY2RuLnhpdHUuaW8vMjAxNy85LzQvNGMyODlhMjI0Y2I0OTQ0ZTQ5OWZiNWJmZDMzZTU5MmY_aW1hZ2VWaWV3Mi8wL3cvMTI4MC9oLzk2MC9mb3JtYXQvd2VicC9pZ25vcmUtZXJyb3IvMQ.jfif" alt="img"></p>
<p>&#x4ECE;&#x56FE;&#x4E2D;&#x53EF;&#x4EE5;&#x770B;&#x51FA;&#xFF0C;&#x5982;&#x679C;&#x4E0D;&#x4E0B;&#x5C0F;&#x5FC3;&#x76F4;&#x63A5;&#x628A; Obj1-reference &#x548C; Obj2-reference &#x7F6E; null&#x3002;&#x5219;&#x5728; Java &#x5806;&#x5F53;&#x4E2D;&#x7684;&#x4E24;&#x5757;&#x5185;&#x5B58;&#x4F9D;&#x7136;&#x4FDD;&#x6301;&#x7740;&#x4E92;&#x76F8;&#x5F15;&#x7528;&#x65E0;&#x6CD5;&#x56DE;&#x6536;&#x3002;</p>
<p>2.2.2 &#x53EF;&#x8FBE;&#x6027;&#x5206;&#x6790;&#x6CD5;</p>
<blockquote>
<p>&#x901A;&#x8FC7;&#x4E00;&#x7CFB;&#x5217;&#x7684; &#x2018;GC Roots&#x2019; &#x7684;&#x5BF9;&#x8C61;&#x4F5C;&#x4E3A;&#x8D77;&#x59CB;&#x70B9;&#xFF0C;&#x4ECE;&#x8FD9;&#x4E9B;&#x8282;&#x70B9;&#x51FA;&#x53D1;&#x6240;&#x8D70;&#x8FC7;&#x7684;&#x8DEF;&#x5F84;&#x79F0;&#x4E3A;&#x5F15;&#x7528;&#x94FE;&#x3002;&#x5F53;&#x4E00;&#x4E2A;&#x5BF9;&#x8C61;&#x5230; GC Roots &#x6CA1;&#x6709;&#x4EFB;&#x4F55;&#x5F15;&#x7528;&#x94FE;&#x76F8;&#x8FDE;&#x7684;&#x65F6;&#x5019;&#x8BF4;&#x660E;&#x5BF9;&#x8C61;&#x4E0D;&#x53EF;&#x7528;&#x3002;</p>
</blockquote>
<p><img src="D:\Typora\java&#x6838;&#x5FC3;\jvm\assets\aHR0cHM6Ly91c2VyLWdvbGQtY2RuLnhpdHUuaW8vMjAxNy85LzQvNThiZmFjMTVjYTZkMzA3NmRlZjUxNzRlZDVjYTVhOTk_aW1hZ2VWaWV3Mi8wL3cvMTI4MC9oLzk2MC9mb3JtYXQvd2VicC9pZ25vcmUtZXJyb3IvMQ.jfif" alt="img"></p>
<p>&#x53EF;&#x4F5C;&#x4E3A; GC Roots &#x7684;&#x5BF9;&#x8C61;&#xFF1A;</p>
<ul>
<li>&#x865A;&#x62DF;&#x673A;&#x6808;(&#x6808;&#x5E27;&#x4E2D;&#x7684;&#x672C;&#x5730;&#x53D8;&#x91CF;&#x8868;)&#x4E2D;&#x5F15;&#x7528;&#x7684;&#x5BF9;&#x8C61;</li>
<li>&#x65B9;&#x6CD5;&#x533A;&#x4E2D;&#x7C7B;&#x9759;&#x6001;&#x5C5E;&#x6027;&#x5F15;&#x7528;&#x7684;&#x5BF9;&#x8C61;</li>
<li>&#x65B9;&#x6CD5;&#x533A;&#x4E2D;&#x5E38;&#x91CF;&#x5F15;&#x7528;&#x7684;&#x5BF9;&#x8C61;</li>
<li>&#x672C;&#x5730;&#x65B9;&#x6CD5;&#x6808;&#x4E2D; JNI(&#x5373;&#x4E00;&#x822C;&#x8BF4;&#x7684; Native &#x65B9;&#x6CD5;) &#x5F15;&#x7528;&#x7684;&#x5BF9;&#x8C61;</li>
</ul>
<p>2.2.3 &#x518D;&#x8C08;&#x5F15;&#x7528;</p>
<blockquote>
<p>&#x524D;&#x9762;&#x7684;&#x4E24;&#x79CD;&#x65B9;&#x5F0F;&#x5224;&#x65AD;&#x5B58;&#x6D3B;&#x65F6;&#x90FD;&#x4E0E;&#x2018;&#x5F15;&#x7528;&#x2019;&#x6709;&#x5173;&#x3002;&#x4F46;&#x662F; JDK 1.2 &#x4E4B;&#x540E;&#xFF0C;&#x5F15;&#x7528;&#x6982;&#x5FF5;&#x8FDB;&#x884C;&#x4E86;&#x6269;&#x5145;&#xFF0C;&#x4E0B;&#x9762;&#x5177;&#x4F53;&#x4ECB;&#x7ECD;&#x3002;</p>
</blockquote>
<p>&#x4E0B;&#x9762;&#x56DB;&#x79CD;&#x5F15;&#x7528;&#x5F3A;&#x5EA6;&#x4E00;&#x6B21;&#x9010;&#x6E10;&#x51CF;&#x5F31;</p>
<p>&#x5F3A;&#x5F15;&#x7528;</p>
<blockquote>
<p>&#x7C7B;&#x4F3C;&#x4E8E; <code>Object obj = new Object();</code> &#x521B;&#x5EFA;&#x7684;&#xFF0C;&#x53EA;&#x8981;&#x5F3A;&#x5F15;&#x7528;&#x5728;&#x5C31;&#x4E0D;&#x56DE;&#x6536;&#x3002;</p>
</blockquote>
<p>&#x8F6F;&#x5F15;&#x7528;</p>
<blockquote>
<p>SoftReference &#x7C7B;&#x5B9E;&#x73B0;&#x8F6F;&#x5F15;&#x7528;&#x3002;&#x5728;&#x7CFB;&#x7EDF;&#x8981;&#x53D1;&#x751F;&#x5185;&#x5B58;&#x6EA2;&#x51FA;&#x5F02;&#x5E38;&#x4E4B;&#x524D;&#xFF0C;&#x5C06;&#x4F1A;&#x628A;&#x8FD9;&#x4E9B;&#x5BF9;&#x8C61;&#x5217;&#x8FDB;&#x56DE;&#x6536;&#x8303;&#x56F4;&#x4E4B;&#x4E2D;&#x8FDB;&#x884C;&#x4E8C;&#x6B21;&#x56DE;&#x6536;&#x3002;</p>
</blockquote>
<p>&#x5F31;&#x5F15;&#x7528;</p>
<blockquote>
<p>WeakReference &#x7C7B;&#x5B9E;&#x73B0;&#x5F31;&#x5F15;&#x7528;&#x3002;&#x5BF9;&#x8C61;&#x53EA;&#x80FD;&#x751F;&#x5B58;&#x5230;&#x4E0B;&#x4E00;&#x6B21;&#x5783;&#x573E;&#x6536;&#x96C6;&#x4E4B;&#x524D;&#x3002;&#x5728;&#x5783;&#x573E;&#x6536;&#x96C6;&#x5668;&#x5DE5;&#x4F5C;&#x65F6;&#xFF0C;&#x65E0;&#x8BBA;&#x5185;&#x5B58;&#x662F;&#x5426;&#x8DB3;&#x591F;&#x90FD;&#x4F1A;&#x56DE;&#x6536;&#x6389;&#x53EA;&#x88AB;&#x5F31;&#x5F15;&#x7528;&#x5173;&#x8054;&#x7684;&#x5BF9;&#x8C61;&#x3002;</p>
</blockquote>
<p>&#x865A;&#x5F15;&#x7528;</p>
<blockquote>
<p>PhantomReference &#x7C7B;&#x5B9E;&#x73B0;&#x865A;&#x5F15;&#x7528;&#x3002;&#x65E0;&#x6CD5;&#x901A;&#x8FC7;&#x865A;&#x5F15;&#x7528;&#x83B7;&#x53D6;&#x4E00;&#x4E2A;&#x5BF9;&#x8C61;&#x7684;&#x5B9E;&#x4F8B;&#xFF0C;&#x4E3A;&#x4E00;&#x4E2A;&#x5BF9;&#x8C61;&#x8BBE;&#x7F6E;&#x865A;&#x5F15;&#x7528;&#x5173;&#x8054;&#x7684;&#x552F;&#x4E00;&#x76EE;&#x7684;&#x5C31;&#x662F;&#x80FD;&#x5728;&#x8FD9;&#x4E2A;&#x5BF9;&#x8C61;&#x88AB;&#x6536;&#x96C6;&#x5668;&#x56DE;&#x6536;&#x65F6;&#x6536;&#x5230;&#x4E00;&#x4E2A;&#x7CFB;&#x7EDF;&#x901A;&#x77E5;&#x3002;</p>
</blockquote>
<p>2.2.4 &#x751F;&#x5B58;&#x8FD8;&#x662F;&#x6B7B;&#x4EA1;</p>
<blockquote>
<p>&#x5373;&#x4F7F;&#x5728;&#x53EF;&#x8FBE;&#x6027;&#x5206;&#x6790;&#x7B97;&#x6CD5;&#x4E2D;&#x4E0D;&#x53EF;&#x8FBE;&#x7684;&#x5BF9;&#x8C61;&#xFF0C;&#x4E5F;&#x5E76;&#x975E;&#x662F;&#x201C;facebook&#x201D;&#x7684;&#xFF0C;&#x8FD9;&#x65F6;&#x5019;&#x5B83;&#x4EEC;&#x6682;&#x65F6;&#x51FA;&#x4E8E;&#x201C;&#x7F13;&#x5211;&#x201D;&#x9636;&#x6BB5;&#xFF0C;&#x4E00;&#x4E2A;&#x5BF9;&#x8C61;&#x7684;&#x771F;&#x6B63;&#x6B7B;&#x4EA1;&#x81F3;&#x5C11;&#x8981;&#x7ECF;&#x5386;&#x4E24;&#x6B21;&#x6807;&#x8BB0;&#x8FC7;&#x7A0B;&#xFF1A;&#x5982;&#x679C;&#x5BF9;&#x8C61;&#x5728;&#x8FDB;&#x884C;&#x4E2D;&#x53EF;&#x8FBE;&#x6027;&#x5206;&#x6790;&#x540E;&#x53D1;&#x73B0;&#x6CA1;&#x6709;&#x4E0E; GC Roots &#x76F8;&#x8FDE;&#x63A5;&#x7684;&#x5F15;&#x7528;&#x94FE;&#xFF0C;&#x90A3;&#x4ED6;&#x5C06;&#x4F1A;&#x88AB;&#x7B2C;&#x4E00;&#x6B21;&#x6807;&#x8BB0;&#x5E76;&#x4E14;&#x8FDB;&#x884C;&#x4E00;&#x6B21;&#x7B5B;&#x9009;&#xFF0C;&#x7B5B;&#x9009;&#x6761;&#x4EF6;&#x662F;&#x6B64;&#x5BF9;&#x8C61;&#x662F;&#x5426;&#x6709;&#x5FC5;&#x8981;&#x6267;&#x884C; finalize() &#x65B9;&#x6CD5;&#x3002;&#x5F53;&#x5BF9;&#x8C61;&#x6CA1;&#x6709;&#x8986;&#x76D6; finalize() &#x65B9;&#x6CD5;&#xFF0C;&#x6216;&#x8005; finalize() &#x65B9;&#x6CD5;&#x5DF2;&#x7ECF;&#x88AB;&#x865A;&#x62DF;&#x673A;&#x8C03;&#x7528;&#x8FC7;&#xFF0C;&#x865A;&#x62DF;&#x673A;&#x5C06;&#x8FD9;&#x4E24;&#x79CD;&#x60C5;&#x51B5;&#x90FD;&#x89C6;&#x4E3A;&#x201C;&#x6CA1;&#x6709;&#x5FC5;&#x8981;&#x6267;&#x884C;&#x201D;&#x3002;
&#x5982;&#x679C;&#x8FD9;&#x4E2A;&#x5BF9;&#x8C61;&#x88AB;&#x5224;&#x5B9A;&#x4E3A;&#x6709;&#x5FC5;&#x8981;&#x6267;&#x884C; finalize() &#x65B9;&#x6CD5;&#xFF0C;&#x90A3;&#x4E48;&#x8FD9;&#x4E2A;&#x5BF9;&#x8C61;&#x7ADF;&#x4F1A;&#x653E;&#x7F6E;&#x5728;&#x4E00;&#x4E2A;&#x53EB;&#x505A; F-Queue &#x7684;&#x961F;&#x5217;&#x4E2D;&#xFF0C;&#x5E76;&#x5728;&#x7A0D;&#x540E;&#x7531;&#x4E00;&#x4E2A;&#x7531;&#x865A;&#x62DF;&#x673A;&#x81EA;&#x52A8;&#x5EFA;&#x7ACB;&#x7684;&#x3001;&#x4F4E;&#x4F18;&#x5148;&#x7EA7;&#x7684; Finalizer &#x7EBF;&#x7A0B;&#x53BB;&#x6267;&#x884C;&#x5B83;&#x3002;&#x8FD9;&#x91CC;&#x6240;&#x8C13;&#x7684;&#x201C;&#x6267;&#x884C;&#x201D;&#x662F;&#x6307;&#x865A;&#x62DF;&#x673A;&#x4F1A;&#x51FA;&#x53D1;&#x8FD9;&#x4E2A;&#x65B9;&#x6CD5;&#xFF0C;&#x5E76;&#x4E0D;&#x627F;&#x8BFA;&#x6216;&#x7B49;&#x5F85;&#x4ED6;&#x8FD0;&#x884C;&#x7ED3;&#x675F;&#x3002;finalize() &#x65B9;&#x6CD5;&#x662F;&#x5BF9;&#x8C61;&#x9003;&#x8131;&#x6B7B;&#x4EA1;&#x547D;&#x8FD0;&#x7684;&#x6700;&#x540E;&#x4E00;&#x6B21;&#x673A;&#x4F1A;&#xFF0C;&#x7A0D;&#x540E; GC &#x5C06;&#x5BF9; F-Queue &#x4E2D;&#x7684;&#x5BF9;&#x8C61;&#x8FDB;&#x884C;&#x7B2C;&#x4E8C;&#x6B21;&#x5C0F;&#x89C4;&#x6A21;&#x7684;&#x6807;&#x8BB0;&#xFF0C;&#x5982;&#x679C;&#x5BF9;&#x8C61;&#x8981;&#x5728; finalize() &#x4E2D;&#x6210;&#x529F;&#x62EF;&#x6551;&#x81EA;&#x5DF1; &#x2014;&#x2014; &#x53EA;&#x8981;&#x91CD;&#x65B0;&#x4E0E;&#x5F15;&#x7528;&#x94FE;&#x4E0A;&#x7684;&#x4EFB;&#x4F55;&#x4E00;&#x4E2A;&#x5BF9;&#x8C61;&#x7B80;&#x5386;&#x5173;&#x8054;&#x5373;&#x53EF;&#x3002;
finalize() &#x65B9;&#x6CD5;&#x53EA;&#x4F1A;&#x88AB;&#x7CFB;&#x7EDF;&#x81EA;&#x52A8;&#x8C03;&#x7528;&#x4E00;&#x6B21;&#x3002;</p>
</blockquote>
<p>2.2.5 &#x56DE;&#x6536;&#x65B9;&#x6CD5;&#x533A;</p>
<blockquote>
<p>&#x5728;&#x5806;&#x4E2D;&#xFF0C;&#x5C24;&#x5176;&#x662F;&#x5728;&#x65B0;&#x751F;&#x4EE3;&#x4E2D;&#xFF0C;&#x4E00;&#x6B21;&#x5783;&#x573E;&#x56DE;&#x6536;&#x4E00;&#x822C;&#x53EF;&#x4EE5;&#x56DE;&#x6536; 70% ~ 95% &#x7684;&#x7A7A;&#x95F4;&#xFF0C;&#x800C;&#x6C38;&#x4E45;&#x4EE3;&#x7684;&#x5783;&#x573E;&#x6536;&#x96C6;&#x6548;&#x7387;&#x8FDC;&#x4F4E;&#x4E8E;&#x6B64;&#x3002;
&#x6C38;&#x4E45;&#x4EE3;&#x5783;&#x573E;&#x56DE;&#x6536;&#x4E3B;&#x8981;&#x4E24;&#x90E8;&#x5206;&#x5185;&#x5BB9;&#xFF1A;&#x5E9F;&#x5F03;&#x7684;&#x5E38;&#x91CF;&#x548C;&#x65E0;&#x7528;&#x7684;&#x7C7B;&#x3002;</p>
</blockquote>
<p>&#x5224;&#x65AD;&#x5E9F;&#x5F03;&#x5E38;&#x91CF;&#xFF1A;&#x4E00;&#x822C;&#x662F;&#x5224;&#x65AD;&#x6CA1;&#x6709;&#x8BE5;&#x5E38;&#x91CF;&#x7684;&#x5F15;&#x7528;&#x3002;
&#x5224;&#x65AD;&#x65E0;&#x7528;&#x7684;&#x7C7B;&#xFF1A;&#x8981;&#x4EE5;&#x4E0B;&#x4E09;&#x4E2A;&#x6761;&#x4EF6;&#x90FD;&#x6EE1;&#x8DB3;</p>
<ul>
<li>&#x8BE5;&#x7C7B;&#x6240;&#x6709;&#x7684;&#x5B9E;&#x4F8B;&#x90FD;&#x5DF2;&#x7ECF;&#x56DE;&#x6536;&#xFF0C;&#x4E5F;&#x5C31;&#x662F; Java &#x5806;&#x4E2D;&#x4E0D;&#x5B58;&#x5728;&#x8BE5;&#x7C7B;&#x7684;&#x4EFB;&#x4F55;&#x5B9E;&#x4F8B;</li>
<li>&#x52A0;&#x8F7D;&#x8BE5;&#x7C7B;&#x7684; ClassLoader &#x5DF2;&#x7ECF;&#x88AB;&#x56DE;&#x6536;</li>
<li>&#x8BE5;&#x7C7B;&#x5BF9;&#x5E94;&#x7684; java.lang.Class &#x5BF9;&#x8C61;&#x6CA1;&#x6709;&#x4EFB;&#x4F55;&#x5730;&#x65B9;&#x5457;&#x5F15;&#x7528;&#xFF0C;&#x65E0;&#x6CD5;&#x5728;&#x4EFB;&#x4F55;&#x5730;&#x65B9;&#x901A;&#x8FC7;&#x53CD;&#x5C04;&#x8BBF;&#x95EE;&#x8BE5;&#x7C7B;&#x7684;&#x65B9;&#x6CD5;</li>
</ul>
<h3 id="23-&#x5783;&#x573E;&#x56DE;&#x6536;&#x7B97;&#x6CD5;">2.3 &#x5783;&#x573E;&#x56DE;&#x6536;&#x7B97;&#x6CD5;</h3>
<blockquote>
<p>&#x4EC5;&#x63D0;&#x4F9B;&#x601D;&#x8DEF;</p>
</blockquote>
<p>2.3.1 &#x6807;&#x8BB0; &#x2014;&#x2014; &#x6E05;&#x9664;&#x7B97;&#x6CD5;</p>
<blockquote>
<p>&#x76F4;&#x63A5;&#x6807;&#x8BB0;&#x6E05;&#x9664;&#x5C31;&#x53EF;&#x3002;</p>
</blockquote>
<p>&#x4E24;&#x4E2A;&#x4E0D;&#x8DB3;&#xFF1A;</p>
<ul>
<li>&#x6548;&#x7387;&#x4E0D;&#x9AD8;</li>
<li>&#x7A7A;&#x95F4;&#x4F1A;&#x4EA7;&#x751F;&#x5927;&#x91CF;&#x788E;&#x7247;</li>
</ul>
<p>2.3.2 &#x590D;&#x5236;&#x7B97;&#x6CD5;</p>
<blockquote>
<p>&#x628A;&#x7A7A;&#x95F4;&#x5206;&#x6210;&#x4E24;&#x5757;&#xFF0C;&#x6BCF;&#x6B21;&#x53EA;&#x5BF9;&#x5176;&#x4E2D;&#x4E00;&#x5757;&#x8FDB;&#x884C; GC&#x3002;&#x5F53;&#x8FD9;&#x5757;&#x5185;&#x5B58;&#x4F7F;&#x7528;&#x5B8C;&#x65F6;&#xFF0C;&#x5C31;&#x5C06;&#x8FD8;&#x5B58;&#x6D3B;&#x7684;&#x5BF9;&#x8C61;&#x590D;&#x5236;&#x5230;&#x53E6;&#x4E00;&#x5757;&#x4E0A;&#x9762;&#x3002;</p>
</blockquote>
<p>&#x89E3;&#x51B3;&#x524D;&#x4E00;&#x79CD;&#x65B9;&#x6CD5;&#x7684;&#x4E0D;&#x8DB3;&#xFF0C;&#x4F46;&#x662F;&#x4F1A;&#x9020;&#x6210;&#x7A7A;&#x95F4;&#x5229;&#x7528;&#x7387;&#x4F4E;&#x4E0B;&#x3002;&#x56E0;&#x4E3A;&#x5927;&#x591A;&#x6570;&#x65B0;&#x751F;&#x4EE3;&#x5BF9;&#x8C61;&#x90FD;&#x4E0D;&#x4F1A;&#x71AC;&#x8FC7;&#x7B2C;&#x4E00;&#x6B21; GC&#x3002;&#x6240;&#x4EE5;&#x6CA1;&#x5FC5;&#x8981; 1 : 1 &#x5212;&#x5206;&#x7A7A;&#x95F4;&#x3002;&#x53EF;&#x4EE5;&#x5206;&#x4E00;&#x5757;&#x8F83;&#x5927;&#x7684; Eden &#x7A7A;&#x95F4;&#x548C;&#x4E24;&#x5757;&#x8F83;&#x5C0F;&#x7684; Survivor &#x7A7A;&#x95F4;&#xFF0C;&#x6BCF;&#x6B21;&#x4F7F;&#x7528; Eden &#x7A7A;&#x95F4;&#x548C;&#x5176;&#x4E2D;&#x4E00;&#x5757; Survivor&#x3002;&#x5F53;&#x56DE;&#x6536;&#x65F6;&#xFF0C;&#x5C06; Eden &#x548C; Survivor &#x4E2D;&#x8FD8;&#x5B58;&#x6D3B;&#x7684;&#x5BF9;&#x8C61;&#x4E00;&#x6B21;&#x6027;&#x590D;&#x5236;&#x5230;&#x53E6;&#x4E00;&#x5757; Survivor &#x4E0A;&#xFF0C;&#x6700;&#x540E;&#x6E05;&#x7406; Eden &#x548C; Survivor &#x7A7A;&#x95F4;&#x3002;&#x5927;&#x5C0F;&#x6BD4;&#x4F8B;&#x4E00;&#x822C;&#x662F; 8 : 1 : 1&#xFF0C;&#x6BCF;&#x6B21;&#x6D6A;&#x8D39; 10% &#x7684; Survivor &#x7A7A;&#x95F4;&#x3002;&#x4F46;&#x662F;&#x8FD9;&#x91CC;&#x6709;&#x4E00;&#x4E2A;&#x95EE;&#x9898;&#x5C31;&#x662F;&#x5982;&#x679C;&#x5B58;&#x6D3B;&#x7684;&#x5927;&#x4E8E; 10% &#x600E;&#x4E48;&#x529E;&#xFF1F;&#x8FD9;&#x91CC;&#x91C7;&#x7528;&#x4E00;&#x79CD;&#x5206;&#x914D;&#x62C5;&#x4FDD;&#x7B56;&#x7565;&#xFF1A;&#x591A;&#x51FA;&#x6765;&#x7684;&#x5BF9;&#x8C61;&#x76F4;&#x63A5;&#x8FDB;&#x5165;&#x8001;&#x5E74;&#x4EE3;&#x3002;</p>
<p>2.3.3 &#x6807;&#x8BB0;-&#x6574;&#x7406;&#x7B97;&#x6CD5;</p>
<blockquote>
<p>&#x4E0D;&#x540C;&#x4E8E;&#x9488;&#x5BF9;&#x65B0;&#x751F;&#x4EE3;&#x7684;&#x590D;&#x5236;&#x7B97;&#x6CD5;&#xFF0C;&#x9488;&#x5BF9;&#x8001;&#x5E74;&#x4EE3;&#x7684;&#x7279;&#x70B9;&#xFF0C;&#x521B;&#x5EFA;&#x8BE5;&#x7B97;&#x6CD5;&#x3002;&#x4E3B;&#x8981;&#x662F;&#x628A;&#x5B58;&#x6D3B;&#x5BF9;&#x8C61;&#x79FB;&#x5230;&#x5185;&#x5B58;&#x7684;&#x4E00;&#x7AEF;&#x3002;</p>
</blockquote>
<p>2.3.4 &#x5206;&#x4EE3;&#x56DE;&#x6536;</p>
<blockquote>
<p>&#x6839;&#x636E;&#x5B58;&#x6D3B;&#x5BF9;&#x8C61;&#x5212;&#x5206;&#x51E0;&#x5757;&#x5185;&#x5B58;&#x533A;&#xFF0C;&#x4E00;&#x822C;&#x662F;&#x5206;&#x4E3A;&#x65B0;&#x751F;&#x4EE3;&#x548C;&#x8001;&#x5E74;&#x4EE3;&#x3002;&#x7136;&#x540E;&#x6839;&#x636E;&#x5404;&#x4E2A;&#x5E74;&#x4EE3;&#x7684;&#x7279;&#x70B9;&#x5236;&#x5B9A;&#x76F8;&#x5E94;&#x7684;&#x56DE;&#x6536;&#x7B97;&#x6CD5;&#x3002;</p>
</blockquote>
<p>&#x65B0;&#x751F;&#x4EE3;</p>
<blockquote>
<p>&#x6BCF;&#x6B21;&#x5783;&#x573E;&#x56DE;&#x6536;&#x90FD;&#x6709;&#x5927;&#x91CF;&#x5BF9;&#x8C61;&#x6B7B;&#x53BB;&#xFF0C;&#x53EA;&#x6709;&#x5C11;&#x91CF;&#x5B58;&#x6D3B;&#xFF0C;&#x9009;&#x7528;&#x590D;&#x5236;&#x7B97;&#x6CD5;&#x6BD4;&#x8F83;&#x5408;&#x7406;&#x3002;</p>
</blockquote>
<p>&#x8001;&#x5E74;&#x4EE3;</p>
<blockquote>
<p>&#x8001;&#x5E74;&#x4EE3;&#x4E2D;&#x5BF9;&#x8C61;&#x5B58;&#x6D3B;&#x7387;&#x8F83;&#x9AD8;&#x3001;&#x6CA1;&#x6709;&#x989D;&#x5916;&#x7684;&#x7A7A;&#x95F4;&#x5206;&#x914D;&#x5BF9;&#x5B83;&#x8FDB;&#x884C;&#x62C5;&#x4FDD;&#x3002;&#x6240;&#x4EE5;&#x5FC5;&#x987B;&#x4F7F;&#x7528; <code>&#x6807;&#x8BB0; &#x2014;&#x2014; &#x6E05;&#x9664;</code> &#x6216;&#x8005; <code>&#x6807;&#x8BB0; &#x2014;&#x2014; &#x6574;&#x7406;</code> &#x7B97;&#x6CD5;&#x56DE;&#x6536;&#x3002;</p>
</blockquote>
<h3 id="24-hotspot-&#x7684;&#x7B97;&#x6CD5;&#x5B9E;&#x73B0;">2.4 HotSpot &#x7684;&#x7B97;&#x6CD5;&#x5B9E;&#x73B0;</h3>
<blockquote>
<p>// &#x5F85;&#x586B;</p>
</blockquote>
<h3 id="25-&#x5783;&#x573E;&#x56DE;&#x6536;&#x5668;">2.5 &#x5783;&#x573E;&#x56DE;&#x6536;&#x5668;</h3>
<blockquote>
<p>&#x6536;&#x96C6;&#x7B97;&#x6CD5;&#x662F;&#x5185;&#x5B58;&#x56DE;&#x6536;&#x7684;&#x7406;&#x8BBA;&#xFF0C;&#x800C;&#x5783;&#x573E;&#x56DE;&#x6536;&#x5668;&#x662F;&#x5185;&#x5B58;&#x56DE;&#x6536;&#x7684;&#x5B9E;&#x8DF5;&#x3002;</p>
</blockquote>
<p><img src="D:\Typora\java&#x6838;&#x5FC3;\jvm\assets\aHR0cHM6Ly91c2VyLWdvbGQtY2RuLnhpdHUuaW8vMjAxNy85LzQvMTVmYjc1NDc2MmZmNWRmM2Y3ZjYzZTVjMjZkNGQzYWU_aW1hZ2VWaWV3Mi8wL3cvMTI4MC9oLzk2MC9mb3JtYXQvd2VicC9pZ25vcmUtZXJyb3IvMQ.jfif" alt="img"></p>
<p>&#x8BF4;&#x660E;&#xFF1A;&#x5982;&#x679C;&#x4E24;&#x4E2A;&#x6536;&#x96C6;&#x5668;&#x4E4B;&#x95F4;&#x5B58;&#x5728;&#x8FDE;&#x7EBF;&#x8BF4;&#x660E;&#x4ED6;&#x4EEC;&#x4E4B;&#x95F4;&#x53EF;&#x4EE5;&#x642D;&#x914D;&#x4F7F;&#x7528;&#x3002;</p>
<p>2.5.1 Serial &#x6536;&#x96C6;&#x5668;</p>
<blockquote>
<p>&#x8FD9;&#x662F;&#x4E00;&#x4E2A;&#x5355;&#x7EBF;&#x7A0B;&#x6536;&#x96C6;&#x5668;&#x3002;&#x610F;&#x5473;&#x7740;&#x5B83;&#x53EA;&#x4F1A;&#x4F7F;&#x7528;&#x4E00;&#x4E2A; CPU &#x6216;&#x4E00;&#x6761;&#x6536;&#x96C6;&#x7EBF;&#x7A0B;&#x53BB;&#x5B8C;&#x6210;&#x6536;&#x96C6;&#x5DE5;&#x4F5C;&#xFF0C;&#x5E76;&#x4E14;&#x5728;&#x8FDB;&#x884C;&#x5783;&#x573E;&#x56DE;&#x6536;&#x65F6;&#x5FC5;&#x987B;&#x6682;&#x505C;&#x5176;&#x5B83;&#x6240;&#x6709;&#x7684;&#x5DE5;&#x4F5C;&#x7EBF;&#x7A0B;&#x76F4;&#x5230;&#x6536;&#x96C6;&#x7ED3;&#x675F;&#x3002;</p>
</blockquote>
<p><img src="D:\Typora\java&#x6838;&#x5FC3;\jvm\assets\aHR0cHM6Ly91c2VyLWdvbGQtY2RuLnhpdHUuaW8vMjAxNy85LzQvYjE4NDk0YjFlNTQ4NTFiYmJkMmVlNTI3NjBjYzM3NTQ_aW1hZ2VWaWV3Mi8wL3cvMTI4MC9oLzk2MC9mb3JtYXQvd2VicC9pZ25vcmUtZXJyb3IvMQ.jfif" alt="img"></p>
<p>2.5.2 ParNew &#x6536;&#x96C6;&#x5668;</p>
<blockquote>
<p>&#x53EF;&#x4EE5;&#x8BA4;&#x4E3A;&#x662F; Serial &#x6536;&#x96C6;&#x5668;&#x7684;&#x591A;&#x7EBF;&#x7A0B;&#x7248;&#x672C;&#x3002;</p>
</blockquote>
<p><img src="D:\Typora\java&#x6838;&#x5FC3;\jvm\assets\aHR0cHM6Ly91c2VyLWdvbGQtY2RuLnhpdHUuaW8vMjAxNy85LzQvMTU0NjVmYjJlMTdjYjVkNjY1YzI1YmI5OGFjZmVhOTM_aW1hZ2VWaWV3Mi8wL3cvMTI4MC9oLzk2MC9mb3JtYXQvd2VicC9pZ25vcmUtZXJyb3IvMQ.jfif" alt="img"></p>
<p>&#x5E76;&#x884C;&#xFF1A;Parallel</p>
<blockquote>
<p>&#x6307;&#x591A;&#x6761;&#x5783;&#x573E;&#x6536;&#x96C6;&#x7EBF;&#x7A0B;&#x5E76;&#x884C;&#x5DE5;&#x4F5C;&#xFF0C;&#x6B64;&#x65F6;&#x7528;&#x6237;&#x7EBF;&#x7A0B;&#x5904;&#x4E8E;&#x7B49;&#x5F85;&#x72B6;&#x6001;</p>
</blockquote>
<p>&#x5E76;&#x53D1;&#xFF1A;Concurrent</p>
<blockquote>
<p>&#x6307;&#x7528;&#x6237;&#x7EBF;&#x7A0B;&#x548C;&#x5783;&#x573E;&#x56DE;&#x6536;&#x7EBF;&#x7A0B;&#x540C;&#x65F6;&#x6267;&#x884C;(&#x4E0D;&#x4E00;&#x5B9A;&#x662F;&#x5E76;&#x884C;&#xFF0C;&#x6709;&#x53EF;&#x80FD;&#x662F;&#x4EA4;&#x53C9;&#x6267;&#x884C;)&#xFF0C;&#x7528;&#x6237;&#x8FDB;&#x7A0B;&#x5728;&#x8FD0;&#x884C;&#xFF0C;&#x800C;&#x5783;&#x573E;&#x56DE;&#x6536;&#x7EBF;&#x7A0B;&#x5728;&#x53E6;&#x4E00;&#x4E2A; CPU &#x4E0A;&#x8FD0;&#x884C;&#x3002;</p>
</blockquote>
<p>2.5.3 Parallel Scavenge &#x6536;&#x96C6;&#x5668;</p>
<blockquote>
<p>&#x8FD9;&#x662F;&#x4E00;&#x4E2A;&#x65B0;&#x751F;&#x4EE3;&#x6536;&#x96C6;&#x5668;&#xFF0C;&#x4E5F;&#x662F;&#x4F7F;&#x7528;&#x590D;&#x5236;&#x7B97;&#x6CD5;&#x5B9E;&#x73B0;&#xFF0C;&#x540C;&#x65F6;&#x4E5F;&#x662F;&#x5E76;&#x884C;&#x7684;&#x591A;&#x7EBF;&#x7A0B;&#x6536;&#x96C6;&#x5668;&#x3002;</p>
</blockquote>
<p>CMS &#x7B49;&#x6536;&#x96C6;&#x5668;&#x7684;&#x5173;&#x6CE8;&#x70B9;&#x662F;&#x5C3D;&#x53EF;&#x80FD;&#x5730;&#x7F29;&#x77ED;&#x5783;&#x573E;&#x6536;&#x96C6;&#x65F6;&#x7528;&#x6237;&#x7EBF;&#x7A0B;&#x6240;&#x505C;&#x987F;&#x7684;&#x65F6;&#x95F4;&#xFF0C;&#x800C; Parallel Scavenge &#x6536;&#x96C6;&#x5668;&#x7684;&#x76EE;&#x7684;&#x662F;&#x8FBE;&#x5230;&#x4E00;&#x4E2A;&#x53EF;&#x63A7;&#x5236;&#x7684;&#x541E;&#x5410;&#x91CF;(Throughput = &#x8FD0;&#x884C;&#x7528;&#x6237;&#x4EE3;&#x7801;&#x65F6;&#x95F4; / (&#x8FD0;&#x884C;&#x7528;&#x6237;&#x4EE3;&#x7801;&#x65F6;&#x95F4; + &#x5783;&#x573E;&#x6536;&#x96C6;&#x65F6;&#x95F4;))&#x3002;
&#x4F5C;&#x4E3A;&#x4E00;&#x4E2A;&#x541E;&#x5410;&#x91CF;&#x4F18;&#x5148;&#x7684;&#x6536;&#x96C6;&#x5668;&#xFF0C;&#x865A;&#x62DF;&#x673A;&#x4F1A;&#x6839;&#x636E;&#x5F53;&#x524D;&#x7CFB;&#x7EDF;&#x7684;&#x8FD0;&#x884C;&#x60C5;&#x51B5;&#x6536;&#x96C6;&#x6027;&#x80FD;&#x76D1;&#x63A7;&#x4FE1;&#x606F;&#xFF0C;&#x52A8;&#x6001;&#x8C03;&#x6574;&#x505C;&#x987F;&#x65F6;&#x95F4;&#x3002;&#x8FD9;&#x5C31;&#x662F; GC &#x7684;&#x81EA;&#x9002;&#x5E94;&#x8C03;&#x6574;&#x7B56;&#x7565;(GC Ergonomics)&#x3002;</p>
<p>2.5.4 Serial Old &#x6536;&#x96C6;&#x5668;</p>
<blockquote>
<p>&#x6536;&#x96C6;&#x5668;&#x7684;&#x8001;&#x5E74;&#x4EE3;&#x7248;&#x672C;&#xFF0C;&#x5355;&#x7EBF;&#x7A0B;&#xFF0C;&#x4F7F;&#x7528; <code>&#x6807;&#x8BB0; &#x2014;&#x2014; &#x6574;&#x7406;</code>&#x3002;</p>
</blockquote>
<p><img src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly91c2VyLWdvbGQtY2RuLnhpdHUuaW8vMjAxNy85LzQvYjE4NDk0YjFlNTQ4NTFiYmJkMmVlNTI3NjBjYzM3NTQ_aW1hZ2VWaWV3Mi8wL3cvMTI4MC9oLzk2MC9mb3JtYXQvd2VicC9pZ25vcmUtZXJyb3IvMQ" alt="img"></p>
<p>2.5.5 Parallel Old &#x6536;&#x96C6;&#x5668;</p>
<blockquote>
<p>Parallel Old &#x662F; Parallel Scavenge &#x6536;&#x96C6;&#x5668;&#x7684;&#x8001;&#x5E74;&#x4EE3;&#x7248;&#x672C;&#x3002;&#x591A;&#x7EBF;&#x7A0B;&#xFF0C;&#x4F7F;&#x7528; <code>&#x6807;&#x8BB0; &#x2014;&#x2014; &#x6574;&#x7406;</code></p>
</blockquote>
<p><img src="D:\Typora\java&#x6838;&#x5FC3;\jvm\assets\aHR0cHM6Ly91c2VyLWdvbGQtY2RuLnhpdHUuaW8vMjAxNy85LzQvMjU2NDEzNjZiNDNkOTcxMzEwYTBhN2NlZGU0ZTQwNmE_aW1hZ2VWaWV3Mi8wL3cvMTI4MC9oLzk2MC9mb3JtYXQvd2VicC9pZ25vcmUtZXJyb3IvMQ.jfif" alt="img"></p>
<p>2.5.6 CMS &#x6536;&#x96C6;&#x5668;</p>
<blockquote>
<p>CMS (Concurrent Mark Sweep) &#x6536;&#x96C6;&#x5668;&#x662F;&#x4E00;&#x79CD;&#x4EE5;&#x83B7;&#x53D6;&#x6700;&#x77ED;&#x56DE;&#x6536;&#x505C;&#x987F;&#x65F6;&#x95F4;&#x4E3A;&#x76EE;&#x6807;&#x7684;&#x6536;&#x96C6;&#x5668;&#x3002;&#x57FA;&#x4E8E; <code>&#x6807;&#x8BB0; &#x2014;&#x2014; &#x6E05;&#x9664;</code> &#x7B97;&#x6CD5;&#x5B9E;&#x73B0;&#x3002;</p>
</blockquote>
<p>&#x8FD0;&#x4F5C;&#x6B65;&#x9AA4;:</p>
<ol>
<li>&#x521D;&#x59CB;&#x6807;&#x8BB0;(CMS initial mark)&#xFF1A;&#x6807;&#x8BB0; GC Roots &#x80FD;&#x76F4;&#x63A5;&#x5173;&#x8054;&#x5230;&#x7684;&#x5BF9;&#x8C61;</li>
<li>&#x5E76;&#x53D1;&#x6807;&#x8BB0;(CMS concurrent mark)&#xFF1A;&#x8FDB;&#x884C; GC Roots Tracing</li>
<li>&#x91CD;&#x65B0;&#x6807;&#x8BB0;(CMS remark)&#xFF1A;&#x4FEE;&#x6B63;&#x5E76;&#x53D1;&#x6807;&#x8BB0;&#x671F;&#x95F4;&#x7684;&#x53D8;&#x52A8;&#x90E8;&#x5206;</li>
<li>&#x5E76;&#x53D1;&#x6E05;&#x9664;(CMS concurrent sweep)</li>
</ol>
<p><img src="D:\Typora\java&#x6838;&#x5FC3;\jvm\assets\aHR0cHM6Ly91c2VyLWdvbGQtY2RuLnhpdHUuaW8vMjAxNy85LzQvNmY0ZDY4MzY0NGExNTQ1MzdiM2UyM2Q2MGQ0OWMwNzQ_aW1hZ2VWaWV3Mi8wL3cvMTI4MC9oLzk2MC9mb3JtYXQvd2VicC9pZ25vcmUtZXJyb3IvMQ.jfif" alt="img"></p>
<p>&#x7F3A;&#x70B9;&#xFF1A;&#x5BF9; CPU &#x8D44;&#x6E90;&#x654F;&#x611F;&#x3001;&#x65E0;&#x6CD5;&#x6536;&#x96C6;&#x6D6E;&#x52A8;&#x5783;&#x573E;&#x3001;<code>&#x6807;&#x8BB0; &#x2014;&#x2014; &#x6E05;&#x9664;</code> &#x7B97;&#x6CD5;&#x5E26;&#x6765;&#x7684;&#x7A7A;&#x95F4;&#x788E;&#x7247;</p>
<p>2.5.7 G1 &#x6536;&#x96C6;&#x5668;</p>
<blockquote>
<p>&#x9762;&#x5411;&#x670D;&#x52A1;&#x7AEF;&#x7684;&#x5783;&#x573E;&#x56DE;&#x6536;&#x5668;&#x3002;</p>
</blockquote>
<p>&#x4F18;&#x70B9;&#xFF1A;&#x5E76;&#x884C;&#x4E0E;&#x5E76;&#x53D1;&#x3001;&#x5206;&#x4EE3;&#x6536;&#x96C6;&#x3001;&#x7A7A;&#x95F4;&#x6574;&#x5408;&#x3001;&#x53EF;&#x9884;&#x6D4B;&#x505C;&#x987F;&#x3002;</p>
<p>&#x8FD0;&#x4F5C;&#x6B65;&#x9AA4;:</p>
<ol>
<li>&#x521D;&#x59CB;&#x6807;&#x8BB0;(Initial Marking)</li>
<li>&#x5E76;&#x53D1;&#x6807;&#x8BB0;(Concurrent Marking)</li>
<li>&#x6700;&#x7EC8;&#x6807;&#x8BB0;(Final Marking)</li>
<li>&#x7B5B;&#x9009;&#x56DE;&#x6536;(Live Data Counting and Evacuation)</li>
</ol>
<p><img src="D:\Typora\java&#x6838;&#x5FC3;\jvm\assets\aHR0cHM6Ly91c2VyLWdvbGQtY2RuLnhpdHUuaW8vMjAxNy85LzQvNDBhNTc1OTMxYjI1NGE4ZjQwYmI1NDNjMjRlOGZhZGY_aW1hZ2VWaWV3Mi8wL3cvMTI4MC9oLzk2MC9mb3JtYXQvd2VicC9pZ25vcmUtZXJyb3IvMQ.jfif" alt="img"></p>
<h3 id="26-&#x5185;&#x5B58;&#x5206;&#x914D;&#x4E0E;&#x56DE;&#x6536;&#x7B56;&#x7565;">2.6 &#x5185;&#x5B58;&#x5206;&#x914D;&#x4E0E;&#x56DE;&#x6536;&#x7B56;&#x7565;</h3>
<p>2.6.1 &#x5BF9;&#x8C61;&#x4F18;&#x5148;&#x5728; Eden &#x5206;&#x914D;</p>
<blockquote>
<p>&#x5BF9;&#x8C61;&#x4E3B;&#x8981;&#x5206;&#x914D;&#x5728;&#x65B0;&#x751F;&#x4EE3;&#x7684; Eden &#x533A;&#x4E0A;&#xFF0C;&#x5982;&#x679C;&#x542F;&#x52A8;&#x4E86;&#x672C;&#x5730;&#x7EBF;&#x7A0B;&#x5206;&#x914D;&#x7F13;&#x51B2;&#x533A;&#xFF0C;&#x5C06;&#x7EBF;&#x7A0B;&#x4F18;&#x5148;&#x5728; (TLAB) &#x4E0A;&#x5206;&#x914D;&#x3002;&#x5C11;&#x6570;&#x60C5;&#x51B5;&#x4F1A;&#x76F4;&#x63A5;&#x5206;&#x914D;&#x5728;&#x8001;&#x5E74;&#x4EE3;&#x4E2D;&#x3002;</p>
</blockquote>
<p>&#x4E00;&#x822C;&#x6765;&#x8BF4; Java &#x5806;&#x7684;&#x5185;&#x5B58;&#x6A21;&#x578B;&#x5982;&#x4E0B;&#x56FE;&#x6240;&#x793A;&#xFF1A;</p>
<p><img src="D:\Typora\java&#x6838;&#x5FC3;\jvm\assets\aHR0cHM6Ly91c2VyLWdvbGQtY2RuLnhpdHUuaW8vMjAxNy85LzQvOTcxMDE4MDMxNWQzNTc1NmI2OGU5YzVkYWY0NGQ2ZTU_aW1hZ2VWaWV3Mi8wL3cvMTI4MC9oLzk2MC9mb3JtYXQvd2VicC9pZ25vcmUtZXJyb3IvMQ.jfif" alt="img"></p>
<p>&#x65B0;&#x751F;&#x4EE3; GC (Minor GC)</p>
<blockquote>
<p>&#x53D1;&#x751F;&#x5728;&#x65B0;&#x751F;&#x4EE3;&#x7684;&#x5783;&#x573E;&#x56DE;&#x6536;&#x52A8;&#x4F5C;&#xFF0C;&#x9891;&#x7E41;&#xFF0C;&#x901F;&#x5EA6;&#x5FEB;&#x3002;</p>
</blockquote>
<p>&#x8001;&#x5E74;&#x4EE3; GC (Major GC / Full GC)</p>
<blockquote>
<p>&#x53D1;&#x751F;&#x5728;&#x8001;&#x5E74;&#x4EE3;&#x7684;&#x5783;&#x573E;&#x56DE;&#x6536;&#x52A8;&#x4F5C;&#xFF0C;&#x51FA;&#x73B0;&#x4E86; Major GC &#x7ECF;&#x5E38;&#x4F1A;&#x4F34;&#x968F;&#x81F3;&#x5C11;&#x4E00;&#x6B21; Minor GC(&#x975E;&#x7EDD;&#x5BF9;)&#x3002;Major GC &#x7684;&#x901F;&#x5EA6;&#x4E00;&#x822C;&#x4F1A;&#x6BD4; Minor GC &#x6162;&#x5341;&#x500D;&#x4EE5;&#x4E0A;&#x3002;</p>
</blockquote>
<p>2.6.2 &#x5927;&#x5BF9;&#x8C61;&#x76F4;&#x63A5;&#x8FDB;&#x5165;&#x8001;&#x5E74;&#x4EE3;</p>
<p>2.6.3 &#x957F;&#x671F;&#x5B58;&#x6D3B;&#x7684;&#x5BF9;&#x8C61;&#x5C06;&#x8FDB;&#x5165;&#x8001;&#x5E74;&#x4EE3;</p>
<p>2.6.4 &#x52A8;&#x6001;&#x5BF9;&#x8C61;&#x5E74;&#x9F84;&#x5224;&#x5B9A;</p>
<p>2.6.5 &#x7A7A;&#x95F4;&#x5206;&#x914D;&#x62C5;&#x4FDD;</p>
<h2 id="3-java-&#x5185;&#x5B58;&#x6A21;&#x578B;&#x4E0E;&#x7EBF;&#x7A0B;">3. Java &#x5185;&#x5B58;&#x6A21;&#x578B;&#x4E0E;&#x7EBF;&#x7A0B;</h2>
<p><img src="D:\Typora\java&#x6838;&#x5FC3;\jvm\assets\aHR0cHM6Ly91c2VyLWdvbGQtY2RuLnhpdHUuaW8vMjAxNy85LzQvMjBhOTk2ODc0NmFmYTJhZmRlNGIzNzE2YmFiZjU1Y2U_aW1hZ2VWaWV3Mi8wL3cvMTI4MC9oLzk2MC9mb3JtYXQvd2VicC9pZ25vcmUtZXJyb3IvMQ.jfif" alt="img"></p>
<h3 id="31-java-&#x5185;&#x5B58;&#x6A21;&#x578B;">3.1 Java &#x5185;&#x5B58;&#x6A21;&#x578B;</h3>
<blockquote>
<p>&#x5C4F;&#x853D;&#x6389;&#x5404;&#x79CD;&#x786C;&#x4EF6;&#x548C;&#x64CD;&#x4F5C;&#x7CFB;&#x7EDF;&#x7684;&#x5185;&#x5B58;&#x8BBF;&#x95EE;&#x5DEE;&#x5F02;&#x3002;</p>
</blockquote>
<p><img src="D:\Typora\java&#x6838;&#x5FC3;\jvm\assets\aHR0cHM6Ly91c2VyLWdvbGQtY2RuLnhpdHUuaW8vMjAxNy85LzQvOGY5ODMzMGRjOGFmNGNlOGNmNTM5N2EwMTMzMDhlYzI_aW1hZ2VWaWV3Mi8wL3cvMTI4MC9oLzk2MC9mb3JtYXQvd2VicC9pZ25vcmUtZXJyb3IvMQ.jfif" alt="img"></p>
<p>3.1.1 &#x4E3B;&#x5185;&#x5B58;&#x548C;&#x5DE5;&#x4F5C;&#x5185;&#x5B58;&#x4E4B;&#x95F4;&#x7684;&#x4EA4;&#x4E92;</p>
<table>
<thead>
<tr>
<th>&#x64CD;&#x4F5C;</th>
<th>&#x4F5C;&#x7528;&#x5BF9;&#x8C61;</th>
<th>&#x89E3;&#x91CA;</th>
</tr>
</thead>
<tbody>
<tr>
<td>lock</td>
<td>&#x4E3B;&#x5185;&#x5B58;</td>
<td>&#x628A;&#x4E00;&#x4E2A;&#x53D8;&#x91CF;&#x6807;&#x8BC6;&#x4E3A;&#x4E00;&#x6761;&#x7EBF;&#x7A0B;&#x72EC;&#x5360;&#x7684;&#x72B6;&#x6001;</td>
</tr>
<tr>
<td>unlock</td>
<td>&#x4E3B;&#x5185;&#x5B58;</td>
<td>&#x628A;&#x4E00;&#x4E2A;&#x5904;&#x4E8E;&#x9501;&#x5B9A;&#x72B6;&#x6001;&#x7684;&#x53D8;&#x91CF;&#x91CA;&#x653E;&#x51FA;&#x6765;&#xFF0C;&#x91CA;&#x653E;&#x540E;&#x624D;&#x53EF;&#x88AB;&#x5176;&#x4ED6;&#x7EBF;&#x7A0B;&#x9501;&#x5B9A;</td>
</tr>
<tr>
<td>read</td>
<td>&#x4E3B;&#x5185;&#x5B58;</td>
<td>&#x628A;&#x4E00;&#x4E2A;&#x53D8;&#x91CF;&#x7684;&#x503C;&#x4ECE;&#x4E3B;&#x5185;&#x5B58;&#x4F20;&#x8F93;&#x5230;&#x7EBF;&#x7A0B;&#x5DE5;&#x4F5C;&#x5185;&#x5B58;&#x4E2D;&#xFF0C;&#x4EE5;&#x4FBF; load &#x64CD;&#x4F5C;&#x4F7F;&#x7528;</td>
</tr>
<tr>
<td>load</td>
<td>&#x5DE5;&#x4F5C;&#x5185;&#x5B58;</td>
<td>&#x628A; read &#x64CD;&#x4F5C;&#x4ECE;&#x4E3B;&#x5185;&#x5B58;&#x4E2D;&#x5F97;&#x5230;&#x7684;&#x53D8;&#x91CF;&#x503C;&#x653E;&#x5165;&#x5DE5;&#x4F5C;&#x5185;&#x5B58;&#x4E2D;</td>
</tr>
<tr>
<td>use</td>
<td>&#x5DE5;&#x4F5C;&#x5185;&#x5B58;</td>
<td>&#x628A;&#x5DE5;&#x4F5C;&#x5185;&#x5B58;&#x4E2D;&#x4E00;&#x4E2A;&#x53D8;&#x91CF;&#x7684;&#x503C;&#x4F20;&#x9012;&#x7ED9;&#x6267;&#x884C;&#x5F15;&#x64CE;&#xFF0C;&#x6BCF;&#x5F53;&#x865A;&#x62DF;&#x673A;&#x9047;&#x5230;&#x4E00;&#x4E2A;&#x9700;&#x8981;&#x4F7F;&#x7528;&#x5230;&#x53D8;&#x91CF;&#x503C;&#x7684;&#x5B57;&#x8282;&#x7801;&#x6307;&#x4EE4;&#x65F6;&#x5C06;&#x4F1A;&#x6267;&#x884C;&#x8FD9;&#x4E2A;&#x64CD;&#x4F5C;</td>
</tr>
<tr>
<td>assign</td>
<td>&#x5DE5;&#x4F5C;&#x5185;&#x5B58;</td>
<td>&#x628A;&#x4E00;&#x4E2A;&#x4ECE;&#x6267;&#x884C;&#x5F15;&#x64CE;&#x63A5;&#x6536;&#x5230;&#x7684;&#x503C;&#x8D4B;&#x63A5;&#x6536;&#x5230;&#x7684;&#x503C;&#x8D4B;&#x7ED9;&#x5DE5;&#x4F5C;&#x5185;&#x5B58;&#x7684;&#x53D8;&#x91CF;&#xFF0C;&#x6BCF;&#x5F53;&#x865A;&#x62DF;&#x673A;&#x9047;&#x5230;&#x4E00;&#x4E2A;&#x7ED9;&#x53D8;&#x91CF;&#x8D4B;&#x503C;&#x7684;&#x5B57;&#x8282;&#x7801;&#x6307;&#x4EE4;&#x65F6;&#x6267;&#x884C;&#x8FD9;&#x4E2A;&#x64CD;&#x4F5C;</td>
</tr>
<tr>
<td>store</td>
<td>&#x5DE5;&#x4F5C;&#x5185;&#x5B58;</td>
<td>&#x628A;&#x5DE5;&#x4F5C;&#x5185;&#x5B58;&#x4E2D;&#x7684;&#x4E00;&#x4E2A;&#x53D8;&#x91CF;&#x7684;&#x503C;&#x4F20;&#x9001;&#x5230;&#x4E3B;&#x5185;&#x5B58;&#x4E2D;&#xFF0C;&#x4EE5;&#x4FBF; write &#x64CD;&#x4F5C;</td>
</tr>
<tr>
<td>write</td>
<td>&#x5DE5;&#x4F5C;&#x5185;&#x5B58;</td>
<td>&#x628A; store &#x64CD;&#x4F5C;&#x4ECE;&#x5DE5;&#x4F5C;&#x5185;&#x5B58;&#x4E2D;&#x5F97;&#x5230;&#x7684;&#x53D8;&#x91CF;&#x7684;&#x503C;&#x653E;&#x5165;&#x4E3B;&#x5185;&#x5B58;&#x7684;&#x53D8;&#x91CF;&#x4E2D;</td>
</tr>
</tbody>
</table>
<p>3.1.2 &#x5BF9;&#x4E8E; volatile &#x578B;&#x53D8;&#x91CF;&#x7684;&#x7279;&#x6B8A;&#x89C4;&#x5219;</p>
<blockquote>
<p>&#x5173;&#x952E;&#x5B57; volatile &#x662F; Java &#x865A;&#x62DF;&#x673A;&#x63D0;&#x4F9B;&#x7684;&#x6700;&#x8F7B;&#x91CF;&#x7EA7;&#x7684;&#x540C;&#x6B65;&#x673A;&#x5236;&#x3002;</p>
</blockquote>
<p>&#x4E00;&#x4E2A;&#x53D8;&#x91CF;&#x88AB;&#x5B9A;&#x4E49;&#x4E3A; volatile &#x7684;&#x7279;&#x6027;&#xFF1A;</p>
<ol>
<li>&#x4FDD;&#x8BC1;&#x6B64;&#x53D8;&#x91CF;&#x5BF9;&#x6240;&#x6709;&#x7EBF;&#x7A0B;&#x7684;&#x53EF;&#x89C1;&#x6027;&#x3002;&#x4F46;&#x662F;&#x64CD;&#x4F5C;&#x5E76;&#x975E;&#x539F;&#x5B50;&#x64CD;&#x4F5C;&#xFF0C;&#x5E76;&#x53D1;&#x60C5;&#x51B5;&#x4E0B;&#x4E0D;&#x5B89;&#x5168;&#x3002;</li>
</ol>
<blockquote>
<p>&#x5982;&#x679C;&#x4E0D;&#x7B26;&#x5408; <code>&#x8FD0;&#x7B97;&#x7ED3;&#x679C;&#x5E76;&#x4E0D;&#x4F9D;&#x8D56;&#x53D8;&#x91CF;&#x5F53;&#x524D;&#x503C;&#xFF0C;&#x6216;&#x8005;&#x80FD;&#x591F;&#x786E;&#x4FDD;&#x53EA;&#x6709;&#x5355;&#x4E00;&#x7684;&#x7EBF;&#x7A0B;&#x4FEE;&#x6539;&#x53D8;&#x91CF;&#x7684;&#x503C;</code> &#x548C; <code>&#x53D8;&#x91CF;&#x4E0D;&#x9700;&#x8981;&#x4E0E;&#x5176;&#x4ED6;&#x7684;&#x72B6;&#x6001;&#x53D8;&#x91CF;&#x5171;&#x540C;&#x53C2;&#x4E0E;&#x4E0D;&#x53D8;&#x7EA6;&#x675F;</code> &#x5C31;&#x8981;&#x901A;&#x8FC7;&#x52A0;&#x9501;(&#x4F7F;&#x7528; synchronize &#x6216; java.util.concurrent &#x4E2D;&#x7684;&#x539F;&#x5B50;&#x7C7B;)&#x6765;&#x4FDD;&#x8BC1;&#x539F;&#x5B50;&#x6027;&#x3002;</p>
</blockquote>
<ol>
<li>&#x7981;&#x6B62;&#x6307;&#x4EE4;&#x91CD;&#x6392;&#x5E8F;&#x4F18;&#x5316;&#x3002;</li>
</ol>
<blockquote>
<p>&#x901A;&#x8FC7;&#x63D2;&#x5165;&#x5185;&#x5B58;&#x5C4F;&#x969C;&#x4FDD;&#x8BC1;&#x4E00;&#x81F4;&#x6027;&#x3002;</p>
</blockquote>
<p>3.1.3 &#x5BF9;&#x4E8E; long &#x548C; double &#x578B;&#x53D8;&#x91CF;&#x7684;&#x7279;&#x6B8A;&#x89C4;&#x5219;</p>
<blockquote>
<p>Java &#x8981;&#x6C42;&#x5BF9;&#x4E8E;&#x4E3B;&#x5185;&#x5B58;&#x548C;&#x5DE5;&#x4F5C;&#x5185;&#x5B58;&#x4E4B;&#x95F4;&#x7684;&#x516B;&#x4E2A;&#x64CD;&#x4F5C;&#x90FD;&#x662F;&#x539F;&#x5B50;&#x6027;&#x7684;&#xFF0C;&#x4F46;&#x662F;&#x5BF9;&#x4E8E; 64 &#x4F4D;&#x7684;&#x6570;&#x636E;&#x7C7B;&#x578B;&#xFF0C;&#x6709;&#x4E00;&#x6761;&#x5BBD;&#x677E;&#x7684;&#x89C4;&#x5B9A;&#xFF1A;&#x5141;&#x8BB8;&#x865A;&#x62DF;&#x673A;&#x5C06;&#x6CA1;&#x6709;&#x88AB; volatile &#x4FEE;&#x9970;&#x7684; 64 &#x4F4D;&#x6570;&#x636E;&#x7684;&#x8BFB;&#x5199;&#x64CD;&#x4F5C;&#x5212;&#x5206;&#x4E3A;&#x4E24;&#x6B21; 32 &#x4F4D;&#x7684;&#x64CD;&#x4F5C;&#x6765;&#x8FDB;&#x884C;&#xFF0C;&#x5373;&#x5141;&#x8BB8;&#x865A;&#x62DF;&#x673A;&#x5B9E;&#x73B0;&#x9009;&#x62E9;&#x53EF;&#x4EE5;&#x4E0D;&#x4FDD;&#x8BC1; 64 &#x4F4D;&#x6570;&#x636E;&#x7C7B;&#x578B;&#x7684; load&#x3001;store&#x3001;read &#x548C; write &#x8FD9; 4 &#x4E2A;&#x64CD;&#x4F5C;&#x7684;&#x539F;&#x5B50;&#x6027;&#x3002;&#x8FD9;&#x5C31;&#x662F; long &#x548C; double &#x7684;&#x975E;&#x539F;&#x5B50;&#x6027;&#x534F;&#x5B9A;&#x3002;</p>
</blockquote>
<p>3.1.4 &#x539F;&#x5B50;&#x6027;&#x3001;&#x53EF;&#x89C1;&#x6027;&#x4E0E;&#x6709;&#x5E8F;&#x6027;</p>
<blockquote>
<p>&#x56DE;&#x987E;&#x4E0B;&#x5E76;&#x53D1;&#x4E0B;&#x5E94;&#x8BE5;&#x6CE8;&#x610F;&#x64CD;&#x4F5C;&#x7684;&#x90A3;&#x4E9B;&#x7279;&#x6027;&#x662F;&#x4EC0;&#x4E48;&#xFF0C;&#x540C;&#x65F6;&#x52A0;&#x6DF1;&#x7406;&#x89E3;&#x3002;</p>
</blockquote>
<ul>
<li>&#x539F;&#x5B50;&#x6027;(Atomicity)</li>
</ul>
<blockquote>
<p>&#x7531; Java &#x5185;&#x5B58;&#x6A21;&#x578B;&#x6765;&#x76F4;&#x63A5;&#x4FDD;&#x8BC1;&#x7684;&#x539F;&#x5B50;&#x6027;&#x53D8;&#x91CF;&#x64CD;&#x4F5C;&#x5305;&#x62EC; read&#x3001;load&#x3001;assign&#x3001;use&#x3001;store &#x548C; write&#x3002;&#x5927;&#x81F4;&#x53EF;&#x4EE5;&#x8BA4;&#x4E3A;&#x57FA;&#x672C;&#x6570;&#x636E;&#x7C7B;&#x578B;&#x7684;&#x64CD;&#x4F5C;&#x662F;&#x539F;&#x5B50;&#x6027;&#x7684;&#x3002;&#x540C;&#x65F6; lock &#x548C; unlock &#x53EF;&#x4EE5;&#x4FDD;&#x8BC1;&#x66F4;&#x5927;&#x8303;&#x56F4;&#x64CD;&#x4F5C;&#x7684;&#x539F;&#x5B50;&#x6027;&#x3002;&#x800C; synchronize &#x540C;&#x6B65;&#x5757;&#x64CD;&#x4F5C;&#x7684;&#x539F;&#x5B50;&#x6027;&#x662F;&#x7528;&#x66F4;&#x9AD8;&#x5C42;&#x6B21;&#x7684;&#x5B57;&#x8282;&#x7801;&#x6307;&#x4EE4; monitorenter &#x548C; monitorexit &#x6765;&#x9690;&#x5F0F;&#x64CD;&#x4F5C;&#x7684;&#x3002;</p>
</blockquote>
<ul>
<li>&#x53EF;&#x89C1;&#x6027;(Visibility)</li>
</ul>
<blockquote>
<p>&#x662F;&#x6307;&#x5F53;&#x4E00;&#x4E2A;&#x7EBF;&#x7A0B;&#x4FEE;&#x6539;&#x4E86;&#x5171;&#x4EAB;&#x53D8;&#x91CF;&#x7684;&#x503C;&#xFF0C;&#x5176;&#x4ED6;&#x7EBF;&#x7A0B;&#x4E5F;&#x80FD;&#x591F;&#x7ACB;&#x5373;&#x5F97;&#x77E5;&#x8FD9;&#x4E2A;&#x901A;&#x77E5;&#x3002;&#x4E3B;&#x8981;&#x64CD;&#x4F5C;&#x7EC6;&#x8282;&#x5C31;&#x662F;&#x4FEE;&#x6539;&#x503C;&#x540E;&#x5C06;&#x503C;&#x540C;&#x6B65;&#x81F3;&#x4E3B;&#x5185;&#x5B58;(volatile &#x503C;&#x4F7F;&#x7528;&#x524D;&#x90FD;&#x4F1A;&#x4ECE;&#x4E3B;&#x5185;&#x5B58;&#x5237;&#x65B0;)&#xFF0C;&#x9664;&#x4E86; volatile &#x8FD8;&#x6709; synchronize &#x548C; final &#x53EF;&#x4EE5;&#x4FDD;&#x8BC1;&#x53EF;&#x89C1;&#x6027;&#x3002;&#x540C;&#x6B65;&#x5757;&#x7684;&#x53EF;&#x89C1;&#x6027;&#x662F;&#x7531;&#x201C;&#x5BF9;&#x4E00;&#x4E2A;&#x53D8;&#x91CF;&#x6267;&#x884C; unlock &#x64CD;&#x4F5C;&#x4E4B;&#x524D;&#xFF0C;&#x5FC5;&#x987B;&#x5148;&#x628A;&#x6B64;&#x53D8;&#x91CF;&#x540C;&#x6B65;&#x4F1A;&#x4E3B;&#x5185;&#x5B58;&#x4E2D;( store&#x3001;write &#x64CD;&#x4F5C;)&#x201D;&#x8FD9;&#x6761;&#x89C4;&#x5219;&#x83B7;&#x5F97;&#x3002;&#x800C; final &#x53EF;&#x89C1;&#x6027;&#x662F;&#x6307;&#xFF1A;&#x88AB; final &#x4FEE;&#x9970;&#x7684;&#x5B57;&#x6BB5;&#x5728;&#x6784;&#x9020;&#x5668;&#x4E2D;&#x4E00;&#x65E6;&#x5B8C;&#x6210;&#xFF0C;&#x5E76;&#x4E14;&#x6784;&#x9020;&#x5668;&#x6CA1;&#x6709;&#x628A; &#x201C;this&#x201D; &#x7684;&#x5F15;&#x7528;&#x4F20;&#x9012;&#x51FA;&#x53BB;( this &#x5F15;&#x7528;&#x9003;&#x9038;&#x662F;&#x4E00;&#x4EF6;&#x5F88;&#x5371;&#x9669;&#x7684;&#x4E8B;&#x60C5;&#xFF0C;&#x5176;&#x4ED6;&#x7EBF;&#x7A0B;&#x6709;&#x53EF;&#x80FD;&#x901A;&#x8FC7;&#x8FD9;&#x4E2A;&#x5F15;&#x7528;&#x8BBF;&#x95EE;&#x5230;&#x201C;&#x521D;&#x59CB;&#x5316;&#x4E86;&#x4E00;&#x534A;&#x201D;&#x7684;&#x5BF9;&#x8C61;)&#xFF0C;&#x90A3;&#x5728;&#x5176;&#x4ED6;&#x7EBF;&#x7A0B;&#x4E2D;&#x5C31;&#x80FD;&#x770B;&#x89C1; final &#x5B57;&#x6BB5;&#x7684;&#x503C;&#x3002;</p>
</blockquote>
<ul>
<li>&#x6709;&#x5E8F;&#x6027;(Ordering)</li>
</ul>
<blockquote>
<p>&#x5982;&#x679C;&#x5728;&#x88AB;&#x7EBF;&#x7A0B;&#x5185;&#x89C2;&#x5BDF;&#xFF0C;&#x6240;&#x6709;&#x64CD;&#x4F5C;&#x90FD;&#x662F;&#x6709;&#x5E8F;&#x7684;&#xFF1B;&#x5982;&#x679C;&#x5728;&#x4E00;&#x4E2A;&#x7EBF;&#x7A0B;&#x4E2D;&#x89C2;&#x5BDF;&#x53E6;&#x4E00;&#x4E2A;&#x7EBF;&#x7A0B;&#xFF0C;&#x6240;&#x6709;&#x64CD;&#x4F5C;&#x90FD;&#x662F;&#x65E0;&#x5E8F;&#x7684;&#x3002;&#x524D;&#x534A;&#x53E5;&#x6307;&#x201C;&#x7EBF;&#x7A0B;&#x5185;&#x8868;&#x73B0;&#x4E3A;&#x4E32;&#x884C;&#x7684;&#x8BED;&#x4E49;&#x201D;&#xFF0C;&#x540E;&#x534A;&#x53E5;&#x662F;&#x6307;&#x201C;&#x6307;&#x4EE4;&#x91CD;&#x6392;&#x201D;&#x73B0;&#x8C61;&#x548C;&#x201C;&#x5DE5;&#x4F5C;&#x5185;&#x5B58;&#x4E0E;&#x4E3B;&#x5185;&#x5B58;&#x540C;&#x6B65;&#x5EF6;&#x8FDF;&#x201D;&#x73B0;&#x8C61;&#x3002;Java &#x8BED;&#x8A00;&#x901A;&#x8FC7; volatile &#x548C; synchronize &#x4E24;&#x4E2A;&#x5173;&#x952E;&#x5B57;&#x6765;&#x4FDD;&#x8BC1;&#x7EBF;&#x7A0B;&#x4E4B;&#x95F4;&#x64CD;&#x4F5C;&#x7684;&#x6709;&#x5E8F;&#x6027;&#x3002;volatile &#x81EA;&#x8EAB;&#x5C31;&#x7981;&#x6B62;&#x6307;&#x4EE4;&#x91CD;&#x6392;&#xFF0C;&#x800C; synchronize &#x5219;&#x662F;&#x7531;&#x201C;&#x4E00;&#x4E2A;&#x53D8;&#x91CF;&#x5728;&#x540C;&#x4E00;&#x65F6;&#x523B;&#x6307;&#x5141;&#x8BB8;&#x4E00;&#x6761;&#x7EBF;&#x7A0B;&#x5BF9;&#x5176;&#x8FDB;&#x884C; lock &#x64CD;&#x4F5C;&#x201D;&#x8FD9;&#x6761;&#x89C4;&#x5219;&#x83B7;&#x5F97;&#xFF0C;&#x8FD9;&#x6761;&#x89C4;&#x5219;&#x51B3;&#x5B9A;&#x4E86;&#x6301;&#x6709;&#x540C;&#x4E00;&#x4E2A;&#x9501;&#x7684;&#x4E24;&#x4E2A;&#x540C;&#x6B65;&#x5757;&#x53EA;&#x80FD;&#x4E32;&#x884C;&#x7684;&#x8FDB;&#x5165;&#x3002;</p>
</blockquote>
<p>3.1.5 &#x5148;&#x884C;&#x53D1;&#x751F;&#x539F;&#x5219;</p>
<blockquote>
<p>&#x4E5F;&#x5C31;&#x662F; happens-before &#x539F;&#x5219;&#x3002;&#x8FD9;&#x4E2A;&#x539F;&#x5219;&#x662F;&#x5224;&#x65AD;&#x6570;&#x636E;&#x662F;&#x5426;&#x5B58;&#x5728;&#x7ADE;&#x4E89;&#x3001;&#x7EBF;&#x7A0B;&#x662F;&#x5426;&#x5B89;&#x5168;&#x7684;&#x4E3B;&#x8981;&#x4F9D;&#x636E;&#x3002;&#x5148;&#x884C;&#x53D1;&#x751F;&#x662F; Java &#x5185;&#x5B58;&#x6A21;&#x578B;&#x4E2D;&#x5B9A;&#x4E49;&#x7684;&#x4E24;&#x9879;&#x64CD;&#x4F5C;&#x4E4B;&#x95F4;&#x7684;&#x504F;&#x5E8F;&#x5173;&#x7CFB;&#x3002;</p>
</blockquote>
<p>&#x5929;&#x7136;&#x7684;&#x5148;&#x884C;&#x53D1;&#x751F;&#x5173;&#x7CFB;</p>
<table>
<thead>
<tr>
<th>&#x89C4;&#x5219;</th>
<th>&#x89E3;&#x91CA;</th>
</tr>
</thead>
<tbody>
<tr>
<td>&#x7A0B;&#x5E8F;&#x6B21;&#x5E8F;&#x89C4;&#x5219;</td>
<td>&#x5728;&#x4E00;&#x4E2A;&#x7EBF;&#x7A0B;&#x5185;&#xFF0C;&#x4EE3;&#x7801;&#x6309;&#x7167;&#x4E66;&#x5199;&#x7684;&#x63A7;&#x5236;&#x6D41;&#x987A;&#x5E8F;&#x6267;&#x884C;</td>
</tr>
<tr>
<td>&#x7BA1;&#x7A0B;&#x9501;&#x5B9A;&#x89C4;&#x5219;</td>
<td>&#x4E00;&#x4E2A; unlock &#x64CD;&#x4F5C;&#x5148;&#x884C;&#x53D1;&#x751F;&#x4E8E;&#x540E;&#x9762;&#x5BF9;&#x540C;&#x4E00;&#x4E2A;&#x9501;&#x7684; lock &#x64CD;&#x4F5C;</td>
</tr>
<tr>
<td>volatile &#x53D8;&#x91CF;&#x89C4;&#x5219;</td>
<td>volatile &#x53D8;&#x91CF;&#x7684;&#x5199;&#x64CD;&#x4F5C;&#x5148;&#x884C;&#x53D1;&#x751F;&#x4E8E;&#x540E;&#x9762;&#x5BF9;&#x8FD9;&#x4E2A;&#x53D8;&#x91CF;&#x7684;&#x8BFB;&#x64CD;&#x4F5C;</td>
</tr>
<tr>
<td>&#x7EBF;&#x7A0B;&#x542F;&#x52A8;&#x89C4;&#x5219;</td>
<td>Thread &#x5BF9;&#x8C61;&#x7684; start() &#x65B9;&#x6CD5;&#x5148;&#x884C;&#x53D1;&#x751F;&#x4E8E;&#x6B64;&#x7EBF;&#x7A0B;&#x7684;&#x6BCF;&#x4E00;&#x4E2A;&#x52A8;&#x4F5C;</td>
</tr>
<tr>
<td>&#x7EBF;&#x7A0B;&#x7EC8;&#x6B62;&#x89C4;&#x5219;</td>
<td>&#x7EBF;&#x7A0B;&#x4E2D;&#x6240;&#x6709;&#x7684;&#x64CD;&#x4F5C;&#x90FD;&#x5148;&#x884C;&#x53D1;&#x751F;&#x4E8E;&#x5BF9;&#x6B64;&#x7EBF;&#x7A0B;&#x7684;&#x7EC8;&#x6B62;&#x68C0;&#x6D4B;(&#x901A;&#x8FC7; Thread.join() &#x65B9;&#x6CD5;&#x7ED3;&#x675F;&#x3001; Thread.isAlive() &#x7684;&#x8FD4;&#x56DE;&#x503C;&#x68C0;&#x6D4B;)</td>
</tr>
<tr>
<td>&#x7EBF;&#x7A0B;&#x4E2D;&#x65AD;&#x89C4;&#x5219;</td>
<td>&#x5BF9;&#x7EBF;&#x7A0B; interrupt() &#x65B9;&#x6CD5;&#x8C03;&#x7528;&#x4F18;&#x5148;&#x53D1;&#x751F;&#x4E8E;&#x88AB;&#x4E2D;&#x65AD;&#x7EBF;&#x7A0B;&#x7684;&#x4EE3;&#x7801;&#x68C0;&#x6D4B;&#x5230;&#x4E2D;&#x65AD;&#x4E8B;&#x4EF6;&#x7684;&#x53D1;&#x751F;(&#x901A;&#x8FC7; Thread.interrupted() &#x65B9;&#x6CD5;&#x68C0;&#x6D4B;)</td>
</tr>
<tr>
<td>&#x5BF9;&#x8C61;&#x7EC8;&#x7ED3;&#x89C4;&#x5219;</td>
<td>&#x4E00;&#x4E2A;&#x5BF9;&#x8C61;&#x7684;&#x521D;&#x59CB;&#x5316;&#x5B8C;&#x6210;(&#x6784;&#x9020;&#x51FD;&#x6570;&#x6267;&#x884C;&#x7ED3;&#x675F;)&#x5148;&#x884C;&#x53D1;&#x751F;&#x4E8E;&#x5B83;&#x7684; finalize() &#x65B9;&#x6CD5;&#x7684;&#x5F00;&#x59CB;</td>
</tr>
<tr>
<td>&#x4F20;&#x9012;&#x6027;</td>
<td>&#x5982;&#x679C;&#x64CD;&#x4F5C; A &#x5148;&#x4E8E; &#x64CD;&#x4F5C; B &#x53D1;&#x751F;&#xFF0C;&#x64CD;&#x4F5C; B &#x5148;&#x4E8E; &#x64CD;&#x4F5C; C &#x53D1;&#x751F;&#xFF0C;&#x90A3;&#x4E48;&#x64CD;&#x4F5C; A &#x5148;&#x4E8E; &#x64CD;&#x4F5C; C</td>
</tr>
</tbody>
</table>
<h3 id="32-java-&#x4E0E;&#x7EBF;&#x7A0B;">3.2 Java &#x4E0E;&#x7EBF;&#x7A0B;</h3>
<p>3.2.1 &#x7EBF;&#x7A0B;&#x7684;&#x5B9E;&#x73B0;</p>
<p>&#x4F7F;&#x7528;&#x5185;&#x6838;&#x7EBF;&#x7A0B;&#x5B9E;&#x73B0;</p>
<blockquote>
<p>&#x76F4;&#x63A5;&#x7531;&#x64CD;&#x4F5C;&#x7CFB;&#x7EDF;&#x5185;&#x6838;&#x652F;&#x6301;&#x7684;&#x7EBF;&#x7A0B;&#xFF0C;&#x8FD9;&#x79CD;&#x7EBF;&#x7A0B;&#x7531;&#x5185;&#x6838;&#x5B8C;&#x6210;&#x5207;&#x6362;&#x3002;&#x7A0B;&#x5E8F;&#x4E00;&#x822C;&#x4E0D;&#x4F1A;&#x76F4;&#x63A5;&#x53BB;&#x4F7F;&#x7528;&#x5185;&#x6838;&#x7EBF;&#x7A0B;&#xFF0C;&#x800C;&#x662F;&#x53BB;&#x4F7F;&#x7528;&#x5185;&#x6838;&#x7EBF;&#x7A0B;&#x7684;&#x4E00;&#x79CD;&#x9AD8;&#x7EA7;&#x63A5;&#x53E3; &#x2014;&#x2014; &#x8F7B;&#x91CF;&#x7EA7;&#x8FDB;&#x7A0B;(LWP)&#xFF0C;&#x8F7B;&#x91CF;&#x7EA7;&#x8FDB;&#x7A0B;&#x5C31;&#x662F;&#x6211;&#x4EEC;&#x901A;&#x5E38;&#x610F;&#x4E49;&#x4E0A;&#x6240;&#x8BB2;&#x7684;&#x7EBF;&#x7A0B;&#xFF0C;&#x6BCF;&#x4E2A;&#x8F7B;&#x91CF;&#x7EA7;&#x8FDB;&#x7A0B;&#x90FD;&#x6709;&#x4E00;&#x4E2A;&#x5185;&#x6838;&#x7EA7;&#x7EBF;&#x7A0B;&#x652F;&#x6301;&#x3002;</p>
</blockquote>
<p><img src="D:\Typora\java&#x6838;&#x5FC3;\jvm\assets\aHR0cHM6Ly91c2VyLWdvbGQtY2RuLnhpdHUuaW8vMjAxNy85LzQvNGMwYTk1OTQ1ZTdjN2E1MmVmNmNjYmE0YWJiNzNkNDM_aW1hZ2VWaWV3Mi8wL3cvMTI4MC9oLzk2MC9mb3JtYXQvd2VicC9pZ25vcmUtZXJyb3IvMQ.jfif" alt="img"></p>
<p>&#x4F7F;&#x7528;&#x7528;&#x6237;&#x7EBF;&#x7A0B;&#x5B9E;&#x73B0;</p>
<blockquote>
<p>&#x5E7F;&#x4E49;&#x4E0A;&#x6765;&#x8BF4;&#xFF0C;&#x53EA;&#x8981;&#x4E0D;&#x662F;&#x5185;&#x6838;&#x7EBF;&#x7A0B;&#x5C31;&#x53EF;&#x4EE5;&#x8BA4;&#x4E3A;&#x662F;&#x7528;&#x6237;&#x7EBF;&#x7A0B;&#xFF0C;&#x56E0;&#x6B64;&#x53EF;&#x4EE5;&#x8BA4;&#x4E3A;&#x8F7B;&#x91CF;&#x7EA7;&#x8FDB;&#x7A0B;&#x4E5F;&#x5C5E;&#x4E8E;&#x7528;&#x6237;&#x7EBF;&#x7A0B;&#x3002;&#x72ED;&#x4E49;&#x4E0A;&#x8BF4;&#x662F;&#x5B8C;&#x5168;&#x5EFA;&#x7ACB;&#x5728;&#x7528;&#x6237;&#x7A7A;&#x95F4;&#x7684;&#x7EBF;&#x7A0B;&#x5E93;&#x4E0A;&#x7684;&#x5E76;&#x4E14;&#x5185;&#x6838;&#x7CFB;&#x7EDF;&#x4E0D;&#x53EF;&#x611F;&#x77E5;&#x7684;&#x3002;</p>
</blockquote>
<p><img src="D:\Typora\java&#x6838;&#x5FC3;\jvm\assets\aHR0cHM6Ly91c2VyLWdvbGQtY2RuLnhpdHUuaW8vMjAxNy85LzQvZDE1YjY5NDgyNTIyMTAxMDRkOWNjY2YxODJkYjU4MjU_aW1hZ2VWaWV3Mi8wL3cvMTI4MC9oLzk2MC9mb3JtYXQvd2VicC9pZ25vcmUtZXJyb3IvMQ.jfif" alt="img"></p>
<p>&#x4F7F;&#x7528;&#x7528;&#x6237;&#x7EBF;&#x7A0B;&#x5939;&#x52A0;&#x8F7B;&#x91CF;&#x7EA7;&#x8FDB;&#x7A0B;&#x6DF7;&#x5408;&#x5B9E;&#x73B0;</p>
<blockquote>
<p>&#x76F4;&#x63A5;&#x770B;&#x56FE;</p>
</blockquote>
<p><img src="D:\Typora\java&#x6838;&#x5FC3;\jvm\assets\aHR0cHM6Ly91c2VyLWdvbGQtY2RuLnhpdHUuaW8vMjAxNy85LzQvZjE2MmMwYmUwMGU0NzI5NTIyZmNlNDhkMjA5ODk5MTM_aW1hZ2VWaWV3Mi8wL3cvMTI4MC9oLzk2MC9mb3JtYXQvd2VicC9pZ25vcmUtZXJyb3IvMQ.jfif" alt="img"></p>
<p><strong>Java &#x7EBF;&#x7A0B;&#x5B9E;&#x73B0;</strong></p>
<blockquote>
<p>&#x5E73;&#x53F0;&#x4E0D;&#x540C;&#x5B9E;&#x73B0;&#x65B9;&#x5F0F;&#x4E0D;&#x540C;&#xFF0C;&#x53EF;&#x4EE5;&#x8BA4;&#x4E3A;&#x662F;&#x4E00;&#x6761; Java &#x7EBF;&#x7A0B;&#x6620;&#x5C04;&#x5230;&#x4E00;&#x6761;&#x8F7B;&#x91CF;&#x7EA7;&#x8FDB;&#x7A0B;&#x3002;</p>
</blockquote>
<p>3.2.2 Java &#x7EBF;&#x7A0B;&#x8C03;&#x5EA6;</p>
<p>&#x534F;&#x540C;&#x5F0F;&#x7EBF;&#x7A0B;&#x8C03;&#x5EA6;</p>
<blockquote>
<p>&#x7EBF;&#x7A0B;&#x6267;&#x884C;&#x65F6;&#x95F4;&#x7531;&#x7EBF;&#x7A0B;&#x81EA;&#x8EAB;&#x63A7;&#x5236;&#xFF0C;&#x5B9E;&#x73B0;&#x7B80;&#x5355;&#xFF0C;&#x5207;&#x6362;&#x7EBF;&#x7A0B;&#x81EA;&#x5DF1;&#x53EF;&#x77E5;&#xFF0C;&#x6240;&#x4EE5;&#x57FA;&#x672C;&#x6CA1;&#x6709;&#x7EBF;&#x7A0B;&#x540C;&#x6B65;&#x95EE;&#x9898;&#x3002;&#x574F;&#x5904;&#x662F;&#x6267;&#x884C;&#x65F6;&#x95F4;&#x4E0D;&#x53EF;&#x63A7;&#xFF0C;&#x5BB9;&#x6613;&#x963B;&#x585E;&#x3002;</p>
</blockquote>
<p>&#x62A2;&#x5360;&#x5F0F;&#x7EBF;&#x7A0B;&#x8C03;&#x5EA6;</p>
<blockquote>
<p>&#x6BCF;&#x4E2A;&#x7EBF;&#x7A0B;&#x7531;&#x7CFB;&#x7EDF;&#x6765;&#x5206;&#x914D;&#x6267;&#x884C;&#x65F6;&#x95F4;&#x3002;</p>
</blockquote>
<p>3.2.3 &#x72B6;&#x6001;&#x8F6C;&#x6362;</p>
<p>&#x4E94;&#x79CD;&#x72B6;&#x6001;&#xFF1A;</p>
<ul>
<li>&#x65B0;&#x5EFA;(new)</li>
</ul>
<blockquote>
<p>&#x521B;&#x5EFA;&#x540E;&#x5C1A;&#x672A;&#x542F;&#x52A8;&#x7684;&#x7EBF;&#x7A0B;&#x3002;</p>
</blockquote>
<ul>
<li>&#x8FD0;&#x884C;(Runable)</li>
</ul>
<blockquote>
<p>Runable &#x5305;&#x62EC;&#x4E86;&#x64CD;&#x4F5C;&#x7CFB;&#x7EDF;&#x7EBF;&#x7A0B;&#x72B6;&#x6001;&#x4E2D;&#x7684; Running &#x548C; Ready&#xFF0C;&#x4E5F;&#x5C31;&#x662F;&#x51FA;&#x4E8E;&#x6B64;&#x72B6;&#x6001;&#x7684;&#x7EBF;&#x7A0B;&#x6709;&#x53EF;&#x80FD;&#x6B63;&#x5728;&#x6267;&#x884C;&#xFF0C;&#x4E5F;&#x6709;&#x53EF;&#x80FD;&#x6B63;&#x5728;&#x7B49;&#x5F85; CPU &#x4E3A;&#x4ED6;&#x5206;&#x914D;&#x65F6;&#x95F4;&#x3002;</p>
</blockquote>
<ul>
<li>&#x65E0;&#x9650;&#x671F;&#x7B49;&#x5F85;(Waiting)</li>
</ul>
<blockquote>
<p>&#x51FA;&#x4E8E;&#x8FD9;&#x79CD;&#x72B6;&#x6001;&#x7684;&#x7EBF;&#x7A0B;&#x4E0D;&#x4F1A;&#x88AB; CPU &#x5206;&#x914D;&#x65F6;&#x95F4;&#xFF0C;&#x5B83;&#x4EEC;&#x8981;&#x7B49;&#x5176;&#x4ED6;&#x7EBF;&#x7A0B;&#x663E;&#x793A;&#x7684;&#x5524;&#x9192;&#x3002;</p>
</blockquote>
<p>&#x4EE5;&#x4E0B;&#x65B9;&#x6CD5;&#x4F1A;&#x7136;&#x7EBF;&#x7A0B;&#x8FDB;&#x5165;&#x65E0;&#x9650;&#x671F;&#x7B49;&#x5F85;&#x72B6;&#x6001;&#xFF1A;
1.&#x6CA1;&#x6709;&#x8BBE;&#x7F6E; Timeout &#x53C2;&#x6570;&#x7684; Object.wait() &#x65B9;&#x6CD5;&#x3002;
2.&#x6CA1;&#x6709;&#x8BBE;&#x7F6E; Timeout &#x53C2;&#x6570;&#x7684; Thread.join() &#x65B9;&#x6CD5;&#x3002;
3.LookSupport.park() &#x65B9;&#x6CD5;&#x3002;</p>
<ul>
<li>&#x9650;&#x671F;&#x7B49;&#x5F85;(Timed Waiting)</li>
</ul>
<blockquote>
<p>&#x5904;&#x4E8E;&#x8FD9;&#x79CD;&#x72B6;&#x6001;&#x7684;&#x7EBF;&#x7A0B;&#x4E5F;&#x4E0D;&#x4F1A;&#x5206;&#x914D;&#x65F6;&#x95F4;&#xFF0C;&#x4E0D;&#x8FC7;&#x65E0;&#x9700;&#x7B49;&#x5F85;&#x914D;&#x5176;&#x4ED6;&#x7EBF;&#x7A0B;&#x663E;&#x793A;&#x5730;&#x5524;&#x9192;&#xFF0C;&#x5728;&#x4E00;&#x5B9A;&#x65F6;&#x95F4;&#x540E;&#x4ED6;&#x4EEC;&#x4F1A;&#x7531;&#x7CFB;&#x7EDF;&#x81EA;&#x52A8;&#x5524;&#x9192;&#x3002;</p>
</blockquote>
<p>&#x4EE5;&#x4E0B;&#x65B9;&#x6CD5;&#x4F1A;&#x8BA9;&#x7EBF;&#x7A0B;&#x8FDB;&#x5165;&#x9650;&#x671F;&#x7B49;&#x5F85;&#x72B6;&#x6001;&#xFF1A;
1.Thread.sleep() &#x65B9;&#x6CD5;&#x3002;
2.&#x8BBE;&#x7F6E;&#x4E86; Timeout &#x53C2;&#x6570;&#x7684; Object.wait() &#x65B9;&#x6CD5;&#x3002;
3.&#x8BBE;&#x7F6E;&#x4E86; Timeout &#x53C2;&#x6570;&#x7684; Thread.join() &#x65B9;&#x6CD5;&#x3002;
4.LockSupport.parkNanos() &#x65B9;&#x6CD5;&#x3002;
5.LockSupport.parkUntil() &#x65B9;&#x6CD5;&#x3002;</p>
<ul>
<li>&#x963B;&#x585E;(Blocked)</li>
</ul>
<blockquote>
<p>&#x7EBF;&#x7A0B;&#x88AB;&#x963B;&#x585E;&#x4E86;&#xFF0C;&#x201C;&#x963B;&#x585E;&#x72B6;&#x6001;&#x201D;&#x548C;&#x201C;&#x7B49;&#x5F85;&#x72B6;&#x6001;&#x201D;&#x7684;&#x533A;&#x522B;&#x662F;&#xFF1A;&#x201C;&#x963B;&#x585E;&#x72B6;&#x6001;&#x201D;&#x5728;&#x7B49;&#x5F85;&#x7740;&#x83B7;&#x53D6;&#x4E00;&#x4E2A;&#x6392;&#x4ED6;&#x9501;&#xFF0C;&#x8FD9;&#x4E2A;&#x65F6;&#x95F4;&#x5C06;&#x5728;&#x53E6;&#x5916;&#x4E00;&#x4E2A;&#x7EBF;&#x7A0B;&#x653E;&#x5F03;&#x8FD9;&#x4E2A;&#x9501;&#x7684;&#x65F6;&#x5019;&#x53D1;&#x751F;&#xFF1B;&#x800C;&#x201C;&#x7B49;&#x5F85;&#x72B6;&#x6001;&#x201D;&#x5219;&#x662F;&#x5728;&#x7B49;&#x5F85;&#x4E00;&#x6BB5;&#x65F6;&#x95F4;&#xFF0C;&#x6216;&#x8005;&#x5524;&#x9192;&#x52A8;&#x4F5C;&#x7684;&#x53D1;&#x751F;&#x3002;&#x5728;&#x7A0B;&#x5E8F;&#x7B49;&#x5F85;&#x8FDB;&#x5165;&#x540C;&#x6B65;&#x533A;&#x57DF;&#x7684;&#x65F6;&#x5019;&#xFF0C;&#x7EBF;&#x7A0B;&#x5C06;&#x8FDB;&#x5165;&#x8FD9;&#x79CD;&#x72B6;&#x6001;&#x3002;</p>
</blockquote>
<ul>
<li>&#x7ED3;&#x675F;(Terminated)</li>
</ul>
<blockquote>
<p>&#x5DF2;&#x7EC8;&#x6B62;&#x7EBF;&#x7A0B;&#x7684;&#x7EBF;&#x7A0B;&#x72B6;&#x6001;&#x3002;</p>
</blockquote>
<p><img src="D:\Typora\java&#x6838;&#x5FC3;\jvm\assets\aHR0cHM6Ly91c2VyLWdvbGQtY2RuLnhpdHUuaW8vMjAxNy85LzQvNmFmOGVlNThhNTU0YWYzMmFjOTI0NGQ2NDY5MjFiYzc_aW1hZ2VWaWV3Mi8wL3cvMTI4MC9oLzk2MC9mb3JtYXQvd2VicC9pZ25vcmUtZXJyb3IvMQ.jfif" alt="img"></p>
<h2 id="4-&#x7EBF;&#x7A0B;&#x5B89;&#x5168;&#x4E0E;&#x9501;&#x4F18;&#x5316;">4. &#x7EBF;&#x7A0B;&#x5B89;&#x5168;&#x4E0E;&#x9501;&#x4F18;&#x5316;</h2>
<blockquote>
<p>// &#x5F85;&#x586B;</p>
</blockquote>
<h2 id="5-&#x7C7B;&#x6587;&#x4EF6;&#x7ED3;&#x6784;">5. &#x7C7B;&#x6587;&#x4EF6;&#x7ED3;&#x6784;</h2>
<blockquote>
<p>// &#x5F85;&#x586B;</p>
</blockquote>
<p>&#x6709;&#x70B9;&#x61D2;&#x4E86;&#x3002;&#x3002;&#x3002;&#x5148;&#x8D34;&#x51E0;&#x4E2A;&#x7F51;&#x5740;&#x5427;&#x3002;</p>
<p><a href="https://link.juejin.im/?target=https%3A%2F%2Fdocs.oracle.com%2Fjavase%2Fspecs%2Fjvms%2Fse7%2Fhtml%2Fjvms-4.html" target="_blank">1. Official&#xFF1A;The class File Format</a>
<a href="https://link.juejin.im/?target=http%3A%2F%2Fblog.csdn.net%2Fluanlouis%2Farticle%2Fdetails%2F39892027" target="_blank">2.&#x4EA6;&#x5C71;: &#x300A;Java&#x865A;&#x62DF;&#x673A;&#x539F;&#x7406;&#x56FE;&#x89E3;&#x300B; 1.1&#x3001;class&#x6587;&#x4EF6;&#x57FA;&#x672C;&#x7EC4;&#x7EC7;&#x7ED3;&#x6784;</a></p>
<h2 id="6-&#x865A;&#x62DF;&#x673A;&#x7C7B;&#x52A0;&#x8F7D;&#x673A;&#x5236;">6. &#x865A;&#x62DF;&#x673A;&#x7C7B;&#x52A0;&#x8F7D;&#x673A;&#x5236;</h2>
<blockquote>
<p>&#x865A;&#x62DF;&#x673A;&#x628A;&#x63CF;&#x8FF0;&#x7C7B;&#x7684;&#x6570;&#x636E;&#x4ECE; Class &#x6587;&#x4EF6;&#x52A0;&#x8F7D;&#x5230;&#x5185;&#x5B58;&#xFF0C;&#x5E76;&#x5BF9;&#x6570;&#x636E;&#x8FDB;&#x884C;&#x6821;&#x9A8C;&#x3001;&#x88C5;&#x6362;&#x89E3;&#x6790;&#x548C;&#x521D;&#x59CB;&#x5316;&#xFF0C;&#x6700;&#x7EC8;&#x5F62;&#x6210;&#x53EF;&#x4EE5;&#x88AB;&#x865A;&#x62DF;&#x673A;&#x76F4;&#x63A5;&#x4F7F;&#x7528;&#x7684; Java &#x7C7B;&#x578B;&#x3002;</p>
</blockquote>
<p>&#x5728; Java &#x8BED;&#x8A00;&#x4E2D;&#xFF0C;&#x7C7B;&#x578B;&#x7684;&#x52A0;&#x8F7D;&#x3001;&#x8FDE;&#x63A5;&#x548C;&#x521D;&#x59CB;&#x5316;&#x8FC7;&#x7A0B;&#x90FD;&#x662F;&#x5728;&#x7A0B;&#x5E8F;&#x8FD0;&#x884C;&#x671F;&#x95F4;&#x5B8C;&#x6210;&#x7684;&#x3002;</p>
<h3 id="61-&#x7C7B;&#x52A0;&#x8F7D;&#x65F6;&#x673A;">6.1 &#x7C7B;&#x52A0;&#x8F7D;&#x65F6;&#x673A;</h3>
<p>&#x7C7B;&#x7684;&#x751F;&#x547D;&#x5468;&#x671F;( 7 &#x4E2A;&#x9636;&#x6BB5;)</p>
<p><img src="D:\Typora\java&#x6838;&#x5FC3;\jvm\assets\aHR0cHM6Ly91c2VyLWdvbGQtY2RuLnhpdHUuaW8vMjAxNy85LzQvMjdhYzg3ZjQzOTJmMGFiOTllNGM2NWMyM2NjNzE5NDU_aW1hZ2VWaWV3Mi8wL3cvMTI4MC9oLzk2MC9mb3JtYXQvd2VicC9pZ25vcmUtZXJyb3IvMQ.jfif" alt="img"></p>
<p>&#x5176;&#x4E2D;&#x52A0;&#x8F7D;&#x3001;&#x9A8C;&#x8BC1;&#x3001;&#x51C6;&#x5907;&#x3001;&#x521D;&#x59CB;&#x5316;&#x548C;&#x5378;&#x8F7D;&#x8FD9;&#x4E94;&#x4E2A;&#x9636;&#x6BB5;&#x7684;&#x987A;&#x5E8F;&#x662F;&#x786E;&#x5B9A;&#x7684;&#x3002;&#x89E3;&#x6790;&#x9636;&#x6BB5;&#x53EF;&#x4EE5;&#x5728;&#x521D;&#x59CB;&#x5316;&#x4E4B;&#x540E;&#x518D;&#x5F00;&#x59CB;(&#x8FD0;&#x884C;&#x65F6;&#x7ED1;&#x5B9A;&#x6216;&#x52A8;&#x6001;&#x7ED1;&#x5B9A;&#x6216;&#x665A;&#x671F;&#x7ED1;&#x5B9A;)&#x3002;</p>
<p>&#x4EE5;&#x4E0B;&#x4E94;&#x79CD;&#x60C5;&#x51B5;&#x5FC5;&#x987B;&#x5BF9;&#x7C7B;&#x8FDB;&#x884C;&#x521D;&#x59CB;&#x5316;(&#x800C;&#x52A0;&#x8F7D;&#x3001;&#x9A8C;&#x8BC1;&#x3001;&#x51C6;&#x5907;&#x81EA;&#x7136;&#x9700;&#x8981;&#x5728;&#x6B64;&#x4E4B;&#x524D;&#x5B8C;&#x6210;)&#xFF1A;</p>
<ol>
<li>&#x9047;&#x5230; new&#x3001;getstatic&#x3001;putstatic &#x6216; invokestatic &#x8FD9; 4 &#x6761;&#x5B57;&#x8282;&#x7801;&#x6307;&#x4EE4;&#x65F6;&#x6CA1;&#x521D;&#x59CB;&#x5316;&#x89E6;&#x53D1;&#x521D;&#x59CB;&#x5316;&#x3002;&#x4F7F;&#x7528;&#x573A;&#x666F;&#xFF1A;&#x4F7F;&#x7528; new &#x5173;&#x952E;&#x5B57;&#x5B9E;&#x4F8B;&#x5316;&#x5BF9;&#x8C61;&#x3001;&#x8BFB;&#x53D6;&#x4E00;&#x4E2A;&#x7C7B;&#x7684;&#x9759;&#x6001;&#x5B57;&#x6BB5;(&#x88AB; final &#x4FEE;&#x9970;&#x3001;&#x5DF2;&#x5728;&#x7F16;&#x8BD1;&#x671F;&#x628A;&#x7ED3;&#x679C;&#x653E;&#x5165;&#x5E38;&#x91CF;&#x6C60;&#x7684;&#x9759;&#x6001;&#x5B57;&#x6BB5;&#x9664;&#x5916;)&#x3001;&#x8C03;&#x7528;&#x4E00;&#x4E2A;&#x7C7B;&#x7684;&#x9759;&#x6001;&#x65B9;&#x6CD5;&#x3002;</li>
<li>&#x4F7F;&#x7528; java.lang.reflect &#x5305;&#x7684;&#x65B9;&#x6CD5;&#x5BF9;&#x7C7B;&#x8FDB;&#x884C;&#x53CD;&#x5C04;&#x8C03;&#x7528;&#x7684;&#x65F6;&#x5019;&#x3002;</li>
<li>&#x5F53;&#x521D;&#x59CB;&#x5316;&#x4E00;&#x4E2A;&#x7C7B;&#x7684;&#x65F6;&#x5019;&#xFF0C;&#x5982;&#x679C;&#x53D1;&#x73B0;&#x5176;&#x7236;&#x7C7B;&#x8FD8;&#x6CA1;&#x6709;&#x8FDB;&#x884C;&#x521D;&#x59CB;&#x5316;&#xFF0C;&#x5219;&#x9700;&#x5148;&#x89E6;&#x53D1;&#x5176;&#x7236;&#x7C7B;&#x7684;&#x521D;&#x59CB;&#x5316;&#x3002;</li>
<li>&#x5F53;&#x865A;&#x62DF;&#x673A;&#x542F;&#x52A8;&#x65F6;&#xFF0C;&#x7528;&#x6237;&#x9700;&#x6307;&#x5B9A;&#x4E00;&#x4E2A;&#x8981;&#x52A0;&#x8F7D;&#x7684;&#x4E3B;&#x7C7B;(&#x5305;&#x542B; main() &#x65B9;&#x6CD5;&#x7684;&#x90A3;&#x4E2A;&#x7C7B;)&#xFF0C;&#x865A;&#x62DF;&#x673A;&#x4F1A;&#x5148;&#x521D;&#x59CB;&#x5316;&#x8FD9;&#x4E2A;&#x4E3B;&#x7C7B;&#x3002;</li>
<li>&#x5F53;&#x4F7F;&#x7528; JDK 1.7 &#x7684;&#x52A8;&#x6001;&#x8BED;&#x8A00;&#x652F;&#x6301;&#x65F6;&#xFF0C;&#x5982;&#x679C;&#x4E00;&#x4E2A; java.lang.invoke.MethodHandle &#x5B9E;&#x4F8B;&#x6700;&#x540E;&#x7684;&#x89E3;&#x6790;&#x7ED3;&#x679C; REF_getStatic&#x3001;REF_putStatic&#x3001;REF_invokeStatic &#x7684;&#x65B9;&#x6CD5;&#x53E5;&#x67C4;&#xFF0C;&#x5E76;&#x4E14;&#x8FD9;&#x4E2A;&#x65B9;&#x6CD5;&#x53E5;&#x67C4;&#x6240;&#x5BF9;&#x5E94;&#x7684;&#x7C7B;&#x6CA1;&#x6709;&#x8FDB;&#x884C;&#x8FC7;&#x521D;&#x59CB;&#x5316;&#xFF0C;&#x5219;&#x9700;&#x5148;&#x89E6;&#x53D1;&#x5176;&#x521D;&#x59CB;&#x5316;&#x3002;</li>
</ol>
<p>&#x524D;&#x9762;&#x7684;&#x4E94;&#x79CD;&#x65B9;&#x5F0F;&#x662F;&#x5BF9;&#x4E00;&#x4E2A;&#x7C7B;&#x7684;&#x4E3B;&#x52A8;&#x5F15;&#x7528;&#xFF0C;&#x9664;&#x6B64;&#x4E4B;&#x5916;&#xFF0C;&#x6240;&#x6709;&#x5F15;&#x7528;&#x7C7B;&#x7684;&#x65B9;&#x6CD5;&#x90FD;&#x4E0D;&#x4F1A;&#x89E6;&#x53D1;&#x521D;&#x59CB;&#x5316;&#xFF0C;&#x4F73;&#x4F5C;&#x88AB;&#x52A8;&#x5F15;&#x7528;&#x3002;&#x4E3E;&#x51E0;&#x4E2A;&#x4F8B;&#x5B50;~</p>
<pre><code>public class SuperClass {



    static {



        System.out.println(&quot;SuperClass init!&quot;);



    }



    public static int value = 1127;



}







public class SubClass extends SuperClass {



    static {



        System.out.println(&quot;SubClass init!&quot;);



    }



}







public class ConstClass {



    static {



        System.out.println(&quot;ConstClass init!&quot;);



    }



    public static final String HELLOWORLD = &quot;hello world!&quot;



}







public class NotInitialization {



    public static void main(String[] args) {



        System.out.println(SubClass.value);



        /**



         *  output : SuperClass init!



         * 



         * &#x901A;&#x8FC7;&#x5B50;&#x7C7B;&#x5F15;&#x7528;&#x7236;&#x7C7B;&#x7684;&#x9759;&#x6001;&#x5BF9;&#x8C61;&#x4E0D;&#x4F1A;&#x5BFC;&#x81F4;&#x5B50;&#x7C7B;&#x7684;&#x521D;&#x59CB;&#x5316;



         * &#x53EA;&#x6709;&#x76F4;&#x63A5;&#x5B9A;&#x4E49;&#x8FD9;&#x4E2A;&#x5B57;&#x6BB5;&#x7684;&#x7C7B;&#x624D;&#x4F1A;&#x88AB;&#x521D;&#x59CB;&#x5316;



         */







        SuperClass[] sca = new SuperClass[10];



        /**



         *  output : 



         * 



         * &#x901A;&#x8FC7;&#x6570;&#x7EC4;&#x5B9A;&#x4E49;&#x6765;&#x5F15;&#x7528;&#x7C7B;&#x4E0D;&#x4F1A;&#x89E6;&#x53D1;&#x6B64;&#x7C7B;&#x7684;&#x521D;&#x59CB;&#x5316;



         * &#x865A;&#x62DF;&#x673A;&#x5728;&#x8FD0;&#x884C;&#x65F6;&#x52A8;&#x6001;&#x521B;&#x5EFA;&#x4E86;&#x4E00;&#x4E2A;&#x6570;&#x7EC4;&#x7C7B;



         */







        System.out.println(ConstClass.HELLOWORLD);



        /**



         *  output : 



         * 



         * &#x5E38;&#x91CF;&#x5728;&#x7F16;&#x8BD1;&#x9636;&#x6BB5;&#x4F1A;&#x5B58;&#x5165;&#x8C03;&#x7528;&#x7C7B;&#x7684;&#x5E38;&#x91CF;&#x6C60;&#x5F53;&#x4E2D;&#xFF0C;&#x672C;&#x8D28;&#x4E0A;&#x5E76;&#x6CA1;&#x6709;&#x76F4;&#x63A5;&#x5F15;&#x7528;&#x5230;&#x5B9A;&#x4E49;&#x7C7B;&#x5E38;&#x91CF;&#x7684;&#x7C7B;&#xFF0C;



         * &#x56E0;&#x6B64;&#x4E0D;&#x4F1A;&#x89E6;&#x53D1;&#x5B9A;&#x4E49;&#x5E38;&#x91CF;&#x7684;&#x7C7B;&#x7684;&#x521D;&#x59CB;&#x5316;&#x3002;



         * &#x201C;hello world&#x201D; &#x5728;&#x7F16;&#x8BD1;&#x671F;&#x5E38;&#x91CF;&#x4F20;&#x64AD;&#x4F18;&#x5316;&#x65F6;&#x5DF2;&#x7ECF;&#x5B58;&#x50A8;&#x5230; NotInitialization &#x5E38;&#x91CF;&#x6C60;&#x4E2D;&#x4E86;&#x3002;



         */



    }



}
</code></pre><p>6.2 &#x7C7B;&#x7684;&#x52A0;&#x8F7D;&#x8FC7;&#x7A0B;</p>
<p>6.2.1 &#x52A0;&#x8F7D;</p>
<ol>
<li>&#x901A;&#x8FC7;&#x4E00;&#x4E2A;&#x7C7B;&#x7684;&#x5168;&#x9650;&#x5B9A;&#x540D;&#x6765;&#x83B7;&#x53D6;&#x5B9A;&#x4E49;&#x6B21;&#x7C7B;&#x7684;&#x4E8C;&#x8FDB;&#x5236;&#x6D41;(ZIP &#x5305;&#x3001;&#x7F51;&#x7EDC;&#x3001;&#x8FD0;&#x7B97;&#x751F;&#x6210;&#x3001;JSP &#x751F;&#x6210;&#x3001;&#x6570;&#x636E;&#x5E93;&#x8BFB;&#x53D6;)&#x3002;</li>
<li>&#x5C06;&#x8FD9;&#x4E2A;&#x5B57;&#x8282;&#x6D41;&#x6240;&#x4EE3;&#x8868;&#x7684;&#x9759;&#x6001;&#x5B58;&#x50A8;&#x7ED3;&#x6784;&#x8F6C;&#x5316;&#x4E3A;&#x65B9;&#x6CD5;&#x533A;&#x7684;&#x8FD0;&#x884C;&#x65F6;&#x6570;&#x636E;&#x7ED3;&#x6784;&#x3002;</li>
<li>&#x5728;&#x5185;&#x5B58;&#x4E2D;&#x751F;&#x6210;&#x4E00;&#x4E2A;&#x4EE3;&#x8868;&#x8FD9;&#x4E2A;&#x7C7B;&#x7684; java.lang.Class &#x5BF9;&#x8C61;&#xFF0C;&#x4F5C;&#x4E3A;&#x65B9;&#x6CD5;&#x53BB;&#x8FD9;&#x4E2A;&#x7C7B;&#x7684;&#x5404;&#x79CD;&#x6570;&#x636E;&#x7684;&#x8BBF;&#x95EE;&#x5165;&#x53E3;&#x3002;</li>
</ol>
<p>&#x6570;&#x7EC4;&#x7C7B;&#x7684;&#x7279;&#x6B8A;&#x6027;&#xFF1A;&#x6570;&#x7EC4;&#x7C7B;&#x672C;&#x8EAB;&#x4E0D;&#x901A;&#x8FC7;&#x7C7B;&#x52A0;&#x8F7D;&#x5668;&#x521B;&#x5EFA;&#xFF0C;&#x5B83;&#x662F;&#x7531; Java &#x865A;&#x62DF;&#x673A;&#x76F4;&#x63A5;&#x521B;&#x5EFA;&#x7684;&#x3002;&#x4F46;&#x6570;&#x7EC4;&#x7C7B;&#x4E0E;&#x7C7B;&#x52A0;&#x8F7D;&#x5668;&#x4ECD;&#x7136;&#x6709;&#x5F88;&#x5BC6;&#x5207;&#x7684;&#x5173;&#x7CFB;&#xFF0C;&#x56E0;&#x4E3A;&#x6570;&#x7EC4;&#x7C7B;&#x7684;&#x5143;&#x7D20;&#x7C7B;&#x578B;&#x6700;&#x7EC8;&#x662F;&#x8981;&#x9760;&#x7C7B;&#x52A0;&#x8F7D;&#x5668;&#x53BB;&#x521B;&#x5EFA;&#x7684;&#xFF0C;&#x6570;&#x7EC4;&#x521B;&#x5EFA;&#x8FC7;&#x7A0B;&#x5982;&#x4E0B;&#xFF1A;</p>
<ol>
<li>&#x5982;&#x679C;&#x6570;&#x7EC4;&#x7684;&#x7EC4;&#x4EF6;&#x7C7B;&#x578B;&#x662F;&#x5F15;&#x7528;&#x7C7B;&#x578B;&#xFF0C;&#x90A3;&#x5C31;&#x9012;&#x5F52;&#x91C7;&#x7528;&#x7C7B;&#x52A0;&#x8F7D;&#x52A0;&#x8F7D;&#x3002;</li>
<li>&#x5982;&#x679C;&#x6570;&#x7EC4;&#x7684;&#x7EC4;&#x4EF6;&#x7C7B;&#x578B;&#x4E0D;&#x662F;&#x5F15;&#x7528;&#x7C7B;&#x578B;&#xFF0C;Java &#x865A;&#x62DF;&#x673A;&#x4F1A;&#x628A;&#x6570;&#x7EC4;&#x6807;&#x8BB0;&#x4E3A;&#x5F15;&#x5BFC;&#x7C7B;&#x52A0;&#x8F7D;&#x5668;&#x5173;&#x8054;&#x3002;</li>
<li>&#x6570;&#x7EC4;&#x7C7B;&#x7684;&#x53EF;&#x89C1;&#x6027;&#x4E0E;&#x4ED6;&#x7684;&#x7EC4;&#x4EF6;&#x7C7B;&#x578B;&#x7684;&#x53EF;&#x89C1;&#x6027;&#x4E00;&#x81F4;&#xFF0C;&#x5982;&#x679C;&#x7EC4;&#x4EF6;&#x7C7B;&#x578B;&#x4E0D;&#x662F;&#x5F15;&#x7528;&#x7C7B;&#x578B;&#xFF0C;&#x90A3;&#x6570;&#x7EC4;&#x7C7B;&#x7684;&#x53EF;&#x89C1;&#x6027;&#x5C06;&#x9ED8;&#x8BA4;&#x4E3A; public&#x3002;</li>
</ol>
<p>&#x5185;&#x5B58;&#x4E2D;&#x5B9E;&#x4F8B;&#x7684; java.lang.Class &#x5BF9;&#x8C61;&#x5B58;&#x5728;&#x65B9;&#x6CD5;&#x533A;&#x4E2D;&#x3002;&#x4F5C;&#x4E3A;&#x7A0B;&#x5E8F;&#x8BBF;&#x95EE;&#x65B9;&#x6CD5;&#x533A;&#x4E2D;&#x8FD9;&#x4E9B;&#x7C7B;&#x578B;&#x6570;&#x636E;&#x7684;&#x5916;&#x90E8;&#x63A5;&#x53E3;&#x3002;
&#x52A0;&#x8F7D;&#x9636;&#x6BB5;&#x4E0E;&#x8FDE;&#x63A5;&#x9636;&#x6BB5;&#x7684;&#x90E8;&#x5206;&#x5185;&#x5BB9;&#x662F;&#x4EA4;&#x53C9;&#x8FDB;&#x884C;&#x7684;&#xFF0C;&#x4F46;&#x662F;&#x5F00;&#x59CB;&#x65F6;&#x95F4;&#x4FDD;&#x6301;&#x5148;&#x540E;&#x987A;&#x5E8F;&#x3002;</p>
<p>6.2.2 &#x9A8C;&#x8BC1;</p>
<blockquote>
<p>&#x662F;&#x8FDE;&#x63A5;&#x7684;&#x7B2C;&#x4E00;&#x6B65;&#xFF0C;&#x786E;&#x4FDD; Class &#x6587;&#x4EF6;&#x7684;&#x5B57;&#x8282;&#x6D41;&#x4E2D;&#x5305;&#x542B;&#x7684;&#x4FE1;&#x606F;&#x7B26;&#x5408;&#x5F53;&#x524D;&#x865A;&#x62DF;&#x673A;&#x8981;&#x6C42;&#x3002;</p>
</blockquote>
<p>&#x6587;&#x4EF6;&#x683C;&#x5F0F;&#x9A8C;&#x8BC1;</p>
<ol>
<li>&#x662F;&#x5426;&#x4EE5;&#x9B54;&#x6570; 0xCAFEBABE &#x5F00;&#x5934;</li>
<li>&#x4E3B;&#x3001;&#x6B21;&#x7248;&#x672C;&#x53F7;&#x662F;&#x5426;&#x5728;&#x5F53;&#x524D;&#x865A;&#x62DF;&#x673A;&#x5904;&#x7406;&#x8303;&#x56F4;&#x4E4B;&#x5185;</li>
<li>&#x5E38;&#x91CF;&#x6C60;&#x7684;&#x5E38;&#x91CF;&#x662F;&#x5426;&#x6709;&#x4E0D;&#x88AB;&#x652F;&#x6301;&#x5E38;&#x91CF;&#x7684;&#x7C7B;&#x578B;&#xFF08;&#x68C0;&#x67E5;&#x5E38;&#x91CF; tag &#x6807;&#x5FD7;&#xFF09;</li>
<li>&#x6307;&#x5411;&#x5E38;&#x91CF;&#x7684;&#x5404;&#x79CD;&#x7D22;&#x5F15;&#x503C;&#x4E2D;&#x662F;&#x5426;&#x6709;&#x6307;&#x5411;&#x4E0D;&#x5B58;&#x5728;&#x7684;&#x5E38;&#x91CF;&#x6216;&#x4E0D;&#x7B26;&#x5408;&#x7C7B;&#x578B;&#x7684;&#x5E38;&#x91CF;</li>
<li>CONSTANT_Utf8_info &#x578B;&#x7684;&#x5E38;&#x91CF;&#x4E2D;&#x662F;&#x5426;&#x6709;&#x4E0D;&#x7B26;&#x5408; UTF8 &#x7F16;&#x7801;&#x7684;&#x6570;&#x636E;</li>
<li>Class &#x6587;&#x4EF6;&#x4E2D;&#x5404;&#x4E2A;&#x90E8;&#x5206;&#x96C6;&#x6587;&#x4EF6;&#x672C;&#x8EAB;&#x662F;&#x5426;&#x6709;&#x88AB;&#x5220;&#x9664;&#x7684;&#x9644;&#x52A0;&#x7684;&#x5176;&#x4ED6;&#x4FE1;&#x606F;</li>
<li>&#x2026;&#x2026;</li>
</ol>
<p>&#x53EA;&#x6709;&#x901A;&#x8FC7;&#x8FD9;&#x4E2A;&#x9636;&#x6BB5;&#x7684;&#x9A8C;&#x8BC1;&#x540E;&#xFF0C;&#x5B57;&#x8282;&#x6D41;&#x624D;&#x4F1A;&#x8FDB;&#x5165;&#x5185;&#x5B58;&#x7684;&#x65B9;&#x6CD5;&#x533A;&#x8FDB;&#x884C;&#x5B58;&#x50A8;&#xFF0C;&#x6240;&#x4EE5;&#x540E;&#x9762; 3 &#x4E2A;&#x9A8C;&#x8BC1;&#x9636;&#x6BB5;&#x5168;&#x90E8;&#x662F;&#x57FA;&#x4E8E;&#x65B9;&#x6CD5;&#x533A;&#x7684;&#x5B58;&#x50A8;&#x7ED3;&#x6784;&#x8FDB;&#x884C;&#x7684;&#xFF0C;&#x4E0D;&#x518D;&#x76F4;&#x63A5;&#x64CD;&#x4F5C;&#x5B57;&#x8282;&#x6D41;&#x3002;</p>
<p>&#x5143;&#x6570;&#x636E;&#x9A8C;&#x8BC1;</p>
<ol>
<li>&#x8FD9;&#x4E2A;&#x7C7B;&#x662F;&#x5426;&#x6709;&#x7236;&#x7C7B;&#xFF08;&#x9664; java.lang.Object &#x4E4B;&#x5916;&#xFF09;</li>
<li>&#x8FD9;&#x4E2A;&#x7C7B;&#x7684;&#x7236;&#x7C7B;&#x662F;&#x5426;&#x7EE7;&#x627F;&#x4E86;&#x4E0D;&#x5141;&#x8BB8;&#x88AB;&#x7EE7;&#x627F;&#x7684;&#x7C7B;&#xFF08;final &#x4FEE;&#x9970;&#x7684;&#x7C7B;&#xFF09;</li>
<li>&#x5982;&#x679C;&#x8FD9;&#x4E2A;&#x7C7B;&#x4E0D;&#x662F;&#x62BD;&#x8C61;&#x7C7B;&#xFF0C;&#x662F;&#x5426;&#x5B9E;&#x73B0;&#x4E86;&#x5176;&#x7236;&#x7C7B;&#x6216;&#x63A5;&#x53E3;&#x4E4B;&#x4E2D;&#x8981;&#x6C42;&#x5B9E;&#x73B0;&#x7684;&#x6240;&#x6709;&#x65B9;&#x6CD5;</li>
<li>&#x7C7B;&#x4E2D;&#x7684;&#x5B57;&#x6BB5;&#x3001;&#x65B9;&#x6CD5;&#x662F;&#x5426;&#x4E0E;&#x7236;&#x7C7B;&#x4EA7;&#x751F;&#x77DB;&#x76FE;&#xFF08;&#x8986;&#x76D6;&#x7236;&#x7C7B; final &#x5B57;&#x6BB5;&#x3001;&#x51FA;&#x73B0;&#x4E0D;&#x7B26;&#x5408;&#x89C4;&#x8303;&#x7684;&#x91CD;&#x8F7D;&#xFF09;</li>
</ol>
<p>&#x8FD9;&#x4E00;&#x9636;&#x6BB5;&#x4E3B;&#x8981;&#x662F;&#x5BF9;&#x7C7B;&#x7684;&#x5143;&#x6570;&#x636E;&#x4FE1;&#x606F;&#x8FDB;&#x884C;&#x8BED;&#x4E49;&#x6821;&#x9A8C;&#xFF0C;&#x4FDD;&#x8BC1;&#x4E0D;&#x5B58;&#x5728;&#x4E0D;&#x7B26;&#x5408; Java &#x8BED;&#x8A00;&#x89C4;&#x8303;&#x7684;&#x5143;&#x6570;&#x636E;&#x4FE1;&#x606F;&#x3002;</p>
<p>&#x5B57;&#x8282;&#x7801;&#x9A8C;&#x8BC1;</p>
<ol>
<li>&#x4FDD;&#x8BC1;&#x4EFB;&#x610F;&#x65F6;&#x523B;&#x64CD;&#x4F5C;&#x6570;&#x6808;&#x7684;&#x6570;&#x636E;&#x7C7B;&#x578B;&#x4E0E;&#x6307;&#x4EE4;&#x4EE3;&#x7801;&#x5E8F;&#x5217;&#x90FD;&#x97A5;&#x914D;&#x5408;&#x5DE5;&#x4F5C;&#xFF08;&#x4E0D;&#x4F1A;&#x51FA;&#x73B0;&#x6309;&#x7167; long &#x7C7B;&#x578B;&#x8BFB;&#x4E00;&#x4E2A; int &#x578B;&#x6570;&#x636E;&#xFF09;</li>
<li>&#x4FDD;&#x8BC1;&#x8DF3;&#x8F6C;&#x6307;&#x4EE4;&#x4E0D;&#x4F1A;&#x8DF3;&#x8F6C;&#x5230;&#x65B9;&#x6CD5;&#x4F53;&#x4EE5;&#x5916;&#x7684;&#x5B57;&#x8282;&#x7801;&#x6307;&#x4EE4;&#x4E0A;</li>
<li>&#x4FDD;&#x8BC1;&#x65B9;&#x6CD5;&#x4F53;&#x4E2D;&#x7684;&#x7C7B;&#x578B;&#x8F6C;&#x6362;&#x662F;&#x6709;&#x6548;&#x7684;&#xFF08;&#x5B50;&#x7C7B;&#x5BF9;&#x8C61;&#x8D4B;&#x503C;&#x7ED9;&#x7236;&#x7C7B;&#x6570;&#x636E;&#x7C7B;&#x578B;&#x662F;&#x5B89;&#x5168;&#x7684;&#xFF0C;&#x53CD;&#x8FC7;&#x6765;&#x4E0D;&#x5408;&#x6CD5;&#x7684;&#xFF09;</li>
<li>&#x2026;&#x2026;</li>
</ol>
<p>&#x8FD9;&#x662F;&#x6574;&#x4E2A;&#x9A8C;&#x8BC1;&#x8FC7;&#x7A0B;&#x4E2D;&#x6700;&#x590D;&#x6742;&#x7684;&#x4E00;&#x4E2A;&#x9636;&#x6BB5;&#xFF0C;&#x4E3B;&#x8981;&#x76EE;&#x7684;&#x662F;&#x901A;&#x8FC7;&#x6570;&#x636E;&#x6D41;&#x548C;&#x63A7;&#x5236;&#x6D41;&#x5206;&#x6790;&#xFF0C;&#x786E;&#x5B9A;&#x7A0B;&#x5E8F;&#x8BED;&#x4E49;&#x662F;&#x5408;&#x6CD5;&#x7684;&#x3001;&#x7B26;&#x5408;&#x903B;&#x8F91;&#x7684;&#x3002;&#x8FD9;&#x4E2A;&#x9636;&#x6BB5;&#x5BF9;&#x7C7B;&#x7684;&#x65B9;&#x6CD5;&#x4F53;&#x8FDB;&#x884C;&#x6821;&#x9A8C;&#x5206;&#x6790;&#xFF0C;&#x4FDD;&#x8BC1;&#x6821;&#x9A8C;&#x7C7B;&#x7684;&#x65B9;&#x6CD5;&#x5728;&#x8FD0;&#x884C;&#x65F6;&#x4E0D;&#x4F1A;&#x505A;&#x51FA;&#x5371;&#x5BB3;&#x865A;&#x62DF;&#x673A;&#x5B89;&#x5168;&#x7684;&#x4E8B;&#x4EF6;&#x3002;</p>
<p>&#x7B26;&#x53F7;&#x5F15;&#x7528;&#x9A8C;&#x8BC1;</p>
<ol>
<li>&#x7B26;&#x53F7;&#x5F15;&#x7528;&#x4E2D;&#x901A;&#x8FC7;&#x5B57;&#x7B26;&#x521B;&#x63CF;&#x8FF0;&#x7684;&#x5168;&#x9650;&#x5B9A;&#x540D;&#x662F;&#x5426;&#x80FD;&#x627E;&#x5230;&#x5BF9;&#x5E94;&#x7684;&#x7C7B;</li>
<li>&#x5728;&#x6307;&#x5B9A;&#x7C7B;&#x4E2D;&#x662F;&#x5426;&#x5B58;&#x5728;&#x7B26;&#x65B9;&#x6CD5;&#x7684;&#x5B57;&#x6BB5;&#x63CF;&#x8FF0;&#x7B26;&#x4EE5;&#x53CA;&#x7B80;&#x5355;&#x540D;&#x79F0;&#x6240;&#x63CF;&#x8FF0;&#x7684;&#x65B9;&#x6CD5;&#x548C;&#x5B57;&#x6BB5;</li>
<li>&#x7B26;&#x53F7;&#x5F15;&#x7528;&#x4E2D;&#x7684;&#x7C7B;&#x3001;&#x5B57;&#x6BB5;&#x3001;&#x65B9;&#x6CD5;&#x7684;&#x8BBF;&#x95EE;&#x6027;&#xFF08;private&#x3001;protected&#x3001;public&#x3001;default&#xFF09;&#x662F;&#x5426;&#x53EF;&#x88AB;&#x5F53;&#x524D;&#x7C7B;&#x8BBF;&#x95EE;</li>
<li>&#x2026;&#x2026;</li>
</ol>
<p>&#x6700;&#x540E;&#x4E00;&#x4E2A;&#x9636;&#x6BB5;&#x7684;&#x6821;&#x9A8C;&#x53D1;&#x751F;&#x5728;&#x8FC5;&#x75BE;&#x5C06;&#x7B26;&#x53F7;&#x5F15;&#x7528;&#x8F6C;&#x5316;&#x4E3A;&#x76F4;&#x63A5;&#x5F15;&#x7528;&#x7684;&#x65F6;&#x5019;&#xFF0C;&#x8FD9;&#x4E2A;&#x8F6C;&#x5316;&#x52A8;&#x4F5C;&#x5C06;&#x5728;&#x8FDE;&#x63A5;&#x7684;&#x7B2C;&#x4E09;&#x9636;&#x6BB5;&#x2014;&#x2014;&#x89E3;&#x6790;&#x9636;&#x6BB5;&#x4E2D;&#x53D1;&#x751F;&#x3002;&#x7B26;&#x53F7;&#x5F15;&#x7528;&#x9A8C;&#x8BC1;&#x53EF;&#x4EE5;&#x770B;&#x505A;&#x662F;&#x5BF9;&#x7C7B;&#x81EA;&#x8EAB;&#x4EE5;&#x5916;&#xFF08;&#x5E38;&#x91CF;&#x6C60;&#x4E2D;&#x7684;&#x5404;&#x79CD;&#x7B26;&#x53F7;&#x5F15;&#x7528;&#xFF09;&#x7684;&#x4FE1;&#x606F;&#x8FDB;&#x884C;&#x5339;&#x914D;&#x6027;&#x6821;&#x9A8C;&#xFF0C;&#x8FD8;&#x6709;&#x4EE5;&#x4E0A;&#x63D0;&#x53CA;&#x7684;&#x5185;&#x5BB9;&#x3002;
&#x7B26;&#x53F7;&#x5F15;&#x7528;&#x7684;&#x76EE;&#x7684;&#x662F;&#x786E;&#x4FDD;&#x89E3;&#x6790;&#x52A8;&#x4F5C;&#x80FD;&#x6B63;&#x5E38;&#x6267;&#x884C;&#xFF0C;&#x5982;&#x679C;&#x65E0;&#x6CD5;&#x901A;&#x8FC7;&#x7B26;&#x53F7;&#x5F15;&#x7528;&#x9A8C;&#x8BC1;&#x5C06;&#x629B;&#x51FA;&#x4E00;&#x4E2A; java.lang.IncompatibleClass.ChangeError &#x5F02;&#x5E38;&#x7684;&#x5B50;&#x7C7B;&#x3002;&#x5982; java.lang.IllegalAccessError&#x3001;java.lang.NoSuchFieldError&#x3001;java.lang.NoSuchMethodError &#x7B49;&#x3002;</p>
<p>6.2.3 &#x51C6;&#x5907;</p>
<blockquote>
<p>&#x8FD9;&#x4E2A;&#x9636;&#x6BB5;&#x6B63;&#x5F0F;&#x4E3A;&#x7C7B;&#x5206;&#x914D;&#x5185;&#x5B58;&#x5E76;&#x8BBE;&#x7F6E;&#x7C7B;&#x53D8;&#x91CF;&#x521D;&#x59CB;&#x503C;&#xFF0C;&#x5185;&#x5B58;&#x5728;&#x65B9;&#x6CD5;&#x53BB;&#x4E2D;&#x5206;&#x914D;(&#x542B; static &#x4FEE;&#x9970;&#x7684;&#x53D8;&#x91CF;&#x4E0D;&#x542B;&#x5B9E;&#x4F8B;&#x53D8;&#x91CF;)&#x3002;</p>
</blockquote>
<p><code>public static int value = 1127;</code>
&#x8FD9;&#x53E5;&#x4EE3;&#x7801;&#x5728;&#x521D;&#x59CB;&#x503C;&#x8BBE;&#x7F6E;&#x4E4B;&#x540E;&#x4E3A; 0&#xFF0C;&#x56E0;&#x4E3A;&#x8FD9;&#x65F6;&#x5019;&#x5C1A;&#x672A;&#x5F00;&#x59CB;&#x6267;&#x884C;&#x4EFB;&#x4F55; Java &#x65B9;&#x6CD5;&#x3002;&#x800C;&#x628A; value &#x8D4B;&#x503C;&#x4E3A; 1127 &#x7684; putstatic &#x6307;&#x4EE4;&#x662F;&#x7A0B;&#x5E8F;&#x88AB;&#x7F16;&#x8BD1;&#x540E;&#xFF0C;&#x5B58;&#x653E;&#x4E8E; clinit() &#x65B9;&#x6CD5;&#x4E2D;&#xFF0C;&#x6240;&#x4EE5;&#x521D;&#x59CB;&#x5316;&#x9636;&#x6BB5;&#x624D;&#x4F1A;&#x5BF9; value &#x8FDB;&#x884C;&#x8D4B;&#x503C;&#x3002;</p>
<p>&#x57FA;&#x672C;&#x6570;&#x636E;&#x7C7B;&#x578B;&#x7684;&#x96F6;&#x503C;</p>
<table>
<thead>
<tr>
<th>&#x6570;&#x636E;&#x7C7B;&#x578B;</th>
<th>&#x96F6;&#x503C;</th>
<th>&#x6570;&#x636E;&#x7C7B;&#x578B;</th>
<th>&#x96F6;&#x503C;</th>
</tr>
</thead>
<tbody>
<tr>
<td>int</td>
<td>0</td>
<td>boolean</td>
<td>false</td>
</tr>
<tr>
<td>long</td>
<td>0L</td>
<td>float</td>
<td>0.0f</td>
</tr>
<tr>
<td>short</td>
<td>(short) 0</td>
<td>double</td>
<td>0.0d</td>
</tr>
<tr>
<td>char</td>
<td>&apos;\u0000&apos;</td>
<td>reference</td>
<td>null</td>
</tr>
<tr>
<td>byte</td>
<td>(byte) 0</td>
<td></td>
</tr>
</tbody>
</table>
<p>&#x7279;&#x6B8A;&#x60C5;&#x51B5;&#xFF1A;&#x5982;&#x679C;&#x7C7B;&#x5B57;&#x6BB5;&#x7684;&#x5B57;&#x6BB5;&#x5C5E;&#x6027;&#x8868;&#x4E2D;&#x5B58;&#x5728; ConstantValue &#x5C5E;&#x6027;&#xFF0C;&#x5728;&#x51C6;&#x5907;&#x9636;&#x6BB5;&#x865A;&#x62DF;&#x673A;&#x5C31;&#x4F1A;&#x6839;&#x636E; ConstantValue &#x7684;&#x8BBE;&#x7F6E;&#x5C06; value &#x8D4B;&#x503C;&#x4E3A; 1127&#x3002;</p>
<p>6.2.4 &#x89E3;&#x6790;</p>
<blockquote>
<p>&#x8FD9;&#x4E2A;&#x9636;&#x6BB5;&#x662F;&#x865A;&#x62DF;&#x673A;&#x5C06;&#x5E38;&#x91CF;&#x6C60;&#x5185;&#x7684;&#x7B26;&#x53F7;&#x5F15;&#x7528;&#x66FF;&#x6362;&#x4E3A;&#x76F4;&#x63A5;&#x5F15;&#x7528;&#x7684;&#x8FC7;&#x7A0B;&#x3002;</p>
</blockquote>
<ol>
<li>&#x7B26;&#x53F7;&#x5F15;&#x7528;
&#x7B26;&#x53F7;&#x5F15;&#x7528;&#x4EE5;&#x4E00;&#x7EC4;&#x7B26;&#x53F7;&#x6765;&#x63CF;&#x8FF0;&#x6240;&#x5F15;&#x7528;&#x7684;&#x76EE;&#x6807;&#xFF0C;&#x7B26;&#x53F7;&#x53EF;&#x4EE5;&#x4F7F;&#x4EFB;&#x4F55;&#x5F62;&#x5F0F;&#x7684;&#x5B57;&#x9762;&#x91CF;&#x3002;</li>
<li>&#x76F4;&#x63A5;&#x5F15;&#x7528;
&#x76F4;&#x63A5;&#x5F15;&#x7528;&#x53EF;&#x4EE5;&#x4F7F;&#x76F4;&#x63A5;&#x6307;&#x5411;&#x76EE;&#x6807;&#x7684;&#x6307;&#x9488;&#x3001;&#x76F8;&#x5BF9;&#x504F;&#x79FB;&#x91CF;&#x6216;&#x662F;&#x4E00;&#x4E2A;&#x80FD;&#x95F4;&#x63A5;&#x5B9A;&#x4F4D;&#x5230;&#x76EE;&#x6807;&#x7684;&#x53E5;&#x67C4;&#x3002;&#x76F4;&#x63A5;&#x5F15;&#x7528;&#x548C;&#x8FC5;&#x75BE;&#x7684;&#x5185;&#x5B58;&#x5E03;&#x5C40;&#x5B9E;&#x73B0;&#x6709;&#x5173;</li>
</ol>
<p>&#x89E3;&#x6790;&#x52A8;&#x4F5C;&#x4E3B;&#x8981;&#x9488;&#x5BF9;&#x7C7B;&#x6216;&#x63A5;&#x53E3;&#x3001;&#x5B57;&#x6BB5;&#x3001;&#x7C7B;&#x65B9;&#x6CD5;&#x3001;&#x63A5;&#x53E3;&#x65B9;&#x6CD5;&#x3001;&#x65B9;&#x6CD5;&#x7C7B;&#x578B;&#x3001;&#x65B9;&#x6CD5;&#x53E5;&#x67C4;&#x548C;&#x8C03;&#x7528;&#x70B9;&#x9650;&#x5B9A;&#x7B26; 7 &#x7C7B;&#x7B26;&#x53F7;&#x5F15;&#x7528;&#x8FDB;&#x884C;&#xFF0C;&#x5206;&#x522B;&#x5BF9;&#x5E94;&#x4E8E;&#x5E38;&#x91CF;&#x6C60;&#x7684; 7 &#x4E2D;&#x5E38;&#x91CF;&#x7C7B;&#x578B;&#x3002;</p>
<p>6.2.5 &#x521D;&#x59CB;&#x5316;</p>
<blockquote>
<p>&#x524D;&#x9762;&#x8FC7;&#x7A0B;&#x90FD;&#x662F;&#x4EE5;&#x865A;&#x62DF;&#x673A;&#x4E3B;&#x5BFC;&#xFF0C;&#x800C;&#x521D;&#x59CB;&#x5316;&#x9636;&#x6BB5;&#x5F00;&#x59CB;&#x6267;&#x884C;&#x7C7B;&#x4E2D;&#x7684; Java &#x4EE3;&#x7801;&#x3002;</p>
</blockquote>
<p>6.3 &#x7C7B;&#x52A0;&#x8F7D;&#x5668;</p>
<blockquote>
<p>&#x901A;&#x8FC7;&#x4E00;&#x4E2A;&#x7C7B;&#x7684;&#x5168;&#x9650;&#x5B9A;&#x540D;&#x6765;&#x83B7;&#x53D6;&#x63CF;&#x8FF0;&#x6B64;&#x7C7B;&#x7684;&#x4E8C;&#x8FDB;&#x5236;&#x5B57;&#x8282;&#x6D41;&#x3002;</p>
</blockquote>
<p>6.3.1 &#x53CC;&#x4EB2;&#x59D4;&#x6D3E;&#x6A21;&#x578B;</p>
<blockquote>
<p>&#x4ECE; Java &#x865A;&#x62DF;&#x673A;&#x89D2;&#x5EA6;&#x8BB2;&#xFF0C;&#x53EA;&#x5B58;&#x5728;&#x4E24;&#x79CD;&#x7C7B;&#x52A0;&#x8F7D;&#x5668;&#xFF1A;&#x4E00;&#x79CD;&#x662F;&#x542F;&#x52A8;&#x7C7B;&#x52A0;&#x8F7D;&#x5668;&#xFF08;C++ &#x5B9E;&#x73B0;&#xFF0C;&#x662F;&#x865A;&#x62DF;&#x673A;&#x7684;&#x4E00;&#x90E8;&#x5206;&#xFF09;&#xFF1B;&#x53E6;&#x4E00;&#x79CD;&#x662F;&#x5176;&#x4ED6;&#x6240;&#x6709;&#x7C7B;&#x7684;&#x52A0;&#x8F7D;&#x5668;&#xFF08;Java &#x5B9E;&#x73B0;&#xFF0C;&#x72EC;&#x7ACB;&#x4E8E;&#x865A;&#x62DF;&#x673A;&#x5916;&#x90E8;&#x4E14;&#x5168;&#x7EE7;&#x627F;&#x81EA; java.lang.ClassLoader&#xFF09;</p>
</blockquote>
<ol>
<li>&#x542F;&#x52A8;&#x7C7B;&#x52A0;&#x8F7D;&#x5668;
&#x52A0;&#x8F7D; lib &#x4E0B;&#x6216;&#x88AB; -Xbootclasspath &#x8DEF;&#x5F84;&#x4E0B;&#x7684;&#x7C7B;</li>
<li>&#x6269;&#x5C55;&#x7C7B;&#x52A0;&#x8F7D;&#x5668;
&#x52A0;&#x8F7D; lib/ext &#x6216;&#x8005;&#x88AB; java.ext.dirs &#x7CFB;&#x7EDF;&#x53D8;&#x91CF;&#x6240;&#x6307;&#x5B9A;&#x7684;&#x8DEF;&#x5F84;&#x4E0B;&#x7684;&#x7C7B;</li>
<li>&#x5F15;&#x7528;&#x7A0B;&#x5E8F;&#x7C7B;&#x52A0;&#x8F7D;&#x5668;
ClassLoader&#x8D1F;&#x8D23;&#xFF0C;&#x52A0;&#x8F7D;&#x7528;&#x6237;&#x8DEF;&#x5F84;&#x4E0A;&#x6240;&#x6307;&#x5B9A;&#x7684;&#x7C7B;&#x5E93;&#x3002;</li>
</ol>
<p><img src="D:\Typora\java&#x6838;&#x5FC3;\jvm\assets\aHR0cHM6Ly91c2VyLWdvbGQtY2RuLnhpdHUuaW8vMjAxNy85LzQvYzQyNzA0NzNjNDJjNGE1ZDE0ZWI0NzRjOGQ5NTcwZWI_aW1hZ2VWaWV3Mi8wL3cvMTI4MC9oLzk2MC9mb3JtYXQvd2VicC9pZ25vcmUtZXJyb3IvMQ.jfif" alt="img"></p>
<p>&#x9664;&#x9876;&#x5C42;&#x542F;&#x52A8;&#x7C7B;&#x52A0;&#x8F7D;&#x5668;&#x4E4B;&#x5916;&#xFF0C;&#x5176;&#x4ED6;&#x90FD;&#x6709;&#x81EA;&#x5DF1;&#x7684;&#x7236;&#x7C7B;&#x52A0;&#x8F7D;&#x5668;&#x3002;
&#x5DE5;&#x4F5C;&#x8FC7;&#x7A0B;&#xFF1A;&#x5982;&#x679C;&#x4E00;&#x4E2A;&#x7C7B;&#x52A0;&#x8F7D;&#x5668;&#x6536;&#x5230;&#x4E00;&#x4E2A;&#x7C7B;&#x52A0;&#x8F7D;&#x7684;&#x8BF7;&#x6C42;&#xFF0C;&#x5B83;&#x9996;&#x5148;&#x4E0D;&#x4F1A;&#x81EA;&#x5DF1;&#x52A0;&#x8F7D;&#xFF0C;&#x800C;&#x662F;&#x628A;&#x8FD9;&#x4E2A;&#x8BF7;&#x6C42;&#x59D4;&#x6D3E;&#x7ED9;&#x7236;&#x7C7B;&#x52A0;&#x8F7D;&#x5668;&#x3002;&#x53EA;&#x6709;&#x7236;&#x7C7B;&#x65E0;&#x6CD5;&#x5B8C;&#x6210;&#x65F6;&#x5B50;&#x7C7B;&#x624D;&#x4F1A;&#x5C1D;&#x8BD5;&#x52A0;&#x8F7D;&#x3002;</p>
<p>6.3.2 &#x7834;&#x574F;&#x53CC;&#x4EB2;&#x59D4;&#x6D3E;&#x6A21;&#x578B;</p>
<blockquote>
<p>keyword&#xFF1A;&#x7EBF;&#x7A0B;&#x4E0A;&#x4E0B;&#x6587;&#x52A0;&#x8F7D;&#x5668;(Thread Context ClassLoader)</p>
</blockquote>
<h2 id="&#x6700;&#x540E;">&#x6700;&#x540E;</h2>
<blockquote>
<p>&#x524D;&#x9762;&#x4E24;&#x6B21;&#x7C97;&#x7565;&#x7684;&#x9605;&#x8BFB;&#xFF0C;&#x80FD;&#x7406;&#x89E3;&#x5185;&#x5BB9;&#xFF0C;&#x4F46;&#x662F;&#x5F88;&#x96BE;&#x8BB0;&#x4F4F;&#x7EC6;&#x8282;&#x3002;&#x6BCF;&#x6BCF;&#x78B0;&#x5230;&#x4E0D;&#x4F1A;&#x7684;&#x77E5;&#x8BC6;&#x70B9;&#x5C31;&#x4E0A;&#x7F51;&#x67E5;&#xFF0C;&#x6240;&#x4EE5;&#x77E5;&#x8BC6;&#x70B9;&#x592A;&#x788E;&#x7247;&#x8111;&#x5B50;&#x91CC;&#x6CA1;&#x6709;&#x4F53;&#x7CFB;&#x4E0D;&#x4EC5;&#x66F4;&#x4E0D;&#x5BB9;&#x6613;&#x8BB0;&#x4F4F;&#xFF0C;&#x800C;&#x4E14;&#x66F4;&#x52A0;&#x5BB9;&#x6613;&#x6DF7;&#x4E71;&#x3002;&#x4F46;&#x662F;&#x901A;&#x8FC7;&#x8FD9;&#x79CD;&#x65B9;&#x5F0F;&#x8BB0;&#x5F55;&#x53D1;&#x73B0;&#x81EA;&#x5DF1;&#x6E05;&#x6670;&#x4E86;&#x5F88;&#x591A;&#xFF0C;&#x5C31;&#x7B97;&#x4EE5;&#x540E;&#x5FD8;&#x8BB0;&#xFF0C;&#x77E5;&#x8BC6;&#x518D;&#x6B21;&#x6361;&#x8D77;&#x7684;&#x6210;&#x672C;&#x4E5F;&#x4F4E;&#x4E86;&#x5F88;&#x591A;&#x3002;</p>
<p>&#x8FD9;&#x6B21;&#x8FD8;&#x6709;&#x4E00;&#x4E9B;&#x7AE0;&#x8282;&#x867D;&#x7136;&#x9605;&#x8BFB;&#x4E86;&#xFF0C;&#x4F46;&#x662F;&#x8FD8;&#x672A;&#x5B8C;&#x6210;&#x8BB0;&#x5F55;&#x3002;&#x7B49;&#x81EA;&#x5DF1;&#x7406;&#x89E3;&#x6DF1;&#x523B;&#x6709;&#x7A7A;&#x95F2;&#x4E86;&#x5C31;&#x518D;&#x6B21;&#x8BB0;&#x5F55;&#x4E0B;&#x6765;&#xFF0C;&#x8FD9;&#x91CC;&#x7684;&#x5185;&#x5BB9;&#x5747;&#x51FA;&#x81EA;&#x5468;&#x5FD7;&#x660E;&#x8001;&#x5E08;&#x7684;&#x300A;&#x6DF1;&#x5165;&#x7406;&#x89E3; Java &#x865A;&#x62DF;&#x673A;&#x300B;&#xFF0C;&#x6709;&#x5174;&#x8DA3;&#x7684;&#x53EF;&#x4EE5;&#x5165;&#x624B;&#x7EB8;&#x8D28;&#x7248;&#x3002;</p>
</blockquote>

                                
                                </section>
                            
    </div>
    <div class="search-results">
        <div class="has-results">
            
            <h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
            <ul class="search-results-list"></ul>
            
        </div>
        <div class="no-results">
            
            <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
            
        </div>
    </div>
</div>

                        </div>
                    </div>
                
            </div>

            
                
                <a href="../" class="navigation navigation-prev " aria-label="Previous page: Introduction">
                    <i class="fa fa-angle-left"></i>
                </a>
                
                
                <a href="../part2/" class="navigation navigation-next " aria-label="Next page: Part2">
                    <i class="fa fa-angle-right"></i>
                </a>
                
            
        
    </div>

    <script>
        var gitbook = gitbook || [];
        gitbook.push(function() {
            gitbook.page.hasChanged({"page":{"title":"Part1","level":"2.1","depth":1,"next":{"title":"Part2","level":"2.2","depth":1,"path":"part2/README.md","ref":"part2/README.md","articles":[]},"previous":{"title":"Introduction","level":"1.1","depth":1,"path":"README.md","ref":"README.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"part1/README.md","mtime":"2020-07-29T16:03:04.880Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-08-30T14:24:18.591Z"},"basePath":"..","book":{"language":""}});
        });
    </script>
</div>

        
    <script src="../gitbook/gitbook.js"></script>
    <script src="../gitbook/theme.js"></script>
    
        
        <script src="../gitbook/gitbook-plugin-search/search-engine.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-search/search.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-lunr/lunr.min.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-lunr/search-lunr.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-sharing/buttons.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-fontsettings/fontsettings.js"></script>
        
    

    </body>
</html>

